init(); $dbConfig = Piwik\Config::getInstance()->database_tests; $dbConfig['dbname'] = 'tracker_tests'; try { Piwik\Db::createDatabaseObject($dbConfig); } catch (Exception $e) { $dbInfosConnectOnly = $dbConfig; $dbInfosConnectOnly['dbname'] = null; Piwik\Db::createDatabaseObject($dbInfosConnectOnly); Piwik\DbHelper::createDatabase($dbConfig['dbname']); Piwik\Db::createDatabaseObject($dbConfig); } $db = Piwik\Db::get(); function sendWebBug() { $trans_gif_64 = "R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="; header("Content-type: image/gif"); print(base64_decode($trans_gif_64)); } function isPost() { return $_SERVER['REQUEST_METHOD'] == 'POST'; } if (!Piwik\Db::hasDatabaseObject()) { sendWebBug(); exit; } function getNextRequestId($db, $token) { $requests = $db->fetchAll("SELECT uri FROM requests WHERE token = \"$token\""); if (empty($requests)) { return 1; } return count($requests) + 1; } try { $db->query( 'CREATE TABLE IF NOT EXISTS `requests` (requestid TEXT, token TEXT, ip TEXT, ts TEXT, uri TEXT, referer TEXT, ua TEXT) DEFAULT CHARSET=utf8' ); } catch (Exception $e) { header("HTTP/1.0 500 Internal Server Error"); exit; } function logRequest($db, $uri, $data) { $ip = $_SERVER['REMOTE_ADDR']; $ts = $_SERVER['REQUEST_TIME']; // $uri = htmlspecialchars($uri); $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $ua = $_SERVER['HTTP_USER_AGENT']; $token = isset($data['token']) ? $data['token'] : ''; $id = getNextRequestId($db, $token); $query = $db->query("INSERT INTO requests (requestid, token, ip, ts, uri, referer, ua) VALUES (\"$id\", \"$token\", \"$ip\", \"$ts\", \"$uri\", \"$referrer\", \"$ua\")"); return $query; } if (isset($_GET['requests'])) { $token = htmlentities($_GET['requests'], ENT_COMPAT | ENT_HTML401, 'UTF-8'); $ua = $_SERVER['HTTP_USER_AGENT']; echo "