Binary data output to webdb.log removed
[irreco.git] / database / php / index.php
blob461d065fe2cf8601ef149004fb2ad903f4cae3ab
1 <?php
5 /**
6 * Make sure that HTTP_RAW_POST_DATA variable is available.
7 */
8 ini_set('always_populate_raw_post_data', TRUE);
12 /**
13 * Require modern PHP.
15 * http://gophp5.org/
17 $version = "5.2.0";
18 if (!version_compare(phpversion(), "5.2.0", ">=")) {
19 die("PHP " . $version . ' or later is required.');
24 /**
25 * Setup logging.
27 require_once 'irreco_webdb_log.php';
28 IrrecoLog::init();
29 IrrecoLog::phpLevel(2047);
30 //IrrecoLog::pearLevel(PEAR_LOG_NOTICE);
31 IrrecoLog::$index->log('Start >>>>>>>>>>>>>>>>>>');
37 /**
38 * Some versions of PHP have a bug with setting HTTP_RAW_POST_DATA variable.
40 if (!isset($GLOBALS['HTTP_RAW_POST_DATA'])) {
41 IrrecoLog::$index->log('Fixing $HTTP_RAW_POST_DATA');
42 $GLOBALS['HTTP_RAW_POST_DATA'] = file_get_contents('php://input');
46 /**
47 * Create XML-RPC server.
50 require_once 'irreco_webdb_database.php';
51 require_once 'irreco_webdb_server.php';
53 $database = new IrrecoWebdbDatabase('mysqli://irreco:abcd@localhost/irreco');
54 $server = new IrrecoWebdbServer($database);
57 /**
58 * Get irreco version
60 if (array_key_exists("HTTP_USER_AGENT", $_SERVER)) {
61 $client = $_SERVER['HTTP_USER_AGENT'];
62 } else {
63 $client = "unknown";
65 $database->addUserAgentData($client);
68 /**
69 * Run XML-RPC server.
72 IrrecoLog::$server->log("Request:\n". $GLOBALS['HTTP_RAW_POST_DATA']);
73 ob_start();
75 $options = array('encoding' => 'UTF-8');
76 $xmlrpc2 = XML_RPC2_Server::create($server, $options);
77 $xmlrpc2->handleCall();
78 $response = ob_get_clean();
80 $len = strlen($response);
81 if($len > 200) {
82 IrrecoLog::$server->log("Response:\n". substr($response, 0, 200).
83 " ...Listing cut for brevity...");
85 else {
86 IrrecoLog::$server->log("Response:\n". $response);
89 echo $response;
91 IrrecoLog::$index->log('End <<<<<<<<<<<<<<<<<<<<');