diff --git a/tests/javascript/index.php b/tests/javascript/index.php index e96496dc670d38169b7d12952a7e7cdb53428b2e..60e01c34dcf49c73a82b58af11515917970e8f3b 100644 --- a/tests/javascript/index.php +++ b/tests/javascript/index.php @@ -380,7 +380,7 @@ if ($sqlite) { stop(); setTimeout(function() { jQuery.ajax({ - url: url("piwik.php?results='. $token .'"), + url: url("piwik.php?results=" + getToken()), success: function(results) { //alert(results); ok( /\<span\>12\<\/span\>/.test( results ), "count tracking events" ); diff --git a/tests/javascript/piwik.php b/tests/javascript/piwik.php index 24c243b6025cac4a5c4e240dd3e7bbe21014932b..ded5ed14a5aec08317b04abf0e2d09ce8cf83e68 100644 --- a/tests/javascript/piwik.php +++ b/tests/javascript/piwik.php @@ -21,22 +21,27 @@ $dbhandle = sqlite_open( 'unittest.dbf' ); if ($dbhandle) { // SQLite 3.3 supports CREATE TABLE IF NOT EXISTS - $result = sqlite_array_query($dbhandle, "SELECT COUNT(*) FROM requests"); + $result = @sqlite_array_query($dbhandle, "SELECT COUNT(*) FROM requests"); if ($result === false) { try { $query = sqlite_exec( $dbhandle, 'CREATE TABLE requests (token TEXT, ip TEXT, ts TEXT, uri TEXT, referer TEXT, ua TEXT);' ); } catch (Exception $e) { } } } +else +{ + header("HTTP/1.0 500 Internal Server Error"); + exit; +} if (isset($_GET['results'])) { - $token = $_GET['results']; + $token = get_magic_quotes_gpc() ? stripslashes($_GET['results']) : $_GET['results']; $ua = $_SERVER['HTTP_USER_AGENT']; echo "<html><head><title>$token</title></head><body>\n"; // $result = sqlite_array_query($dbhandle, "SELECT uri FROM requests"); - $result = sqlite_array_query($dbhandle, "SELECT uri FROM requests WHERE token = \"$token\" AND ua = \"$ua\""); + $result = @sqlite_array_query($dbhandle, "SELECT uri FROM requests WHERE token = \"$token\" AND ua = \"$ua\""); if ($result !== false) { $nofRows = count($result); echo "<span>$nofRows</span>\n"; @@ -51,20 +56,21 @@ if (isset($_GET['results'])) { if (!isset($_REQUEST['data'])) { header("HTTP/1.0 400 Bad Request"); } else { - $data = json_decode($_REQUEST['data']); - - $token = isset($data->token) ? $data->token : ''; - $ip = $_SERVER['REMOTE_ADDR']; $ts = $_SERVER['REQUEST_TIME']; + $uri = $_SERVER['REQUEST_URI']; if($_SERVER['REQUEST_METHOD'] == 'POST') { $uri .= '?' . file_get_contents('php://input'); } $uri = htmlspecialchars($uri); + $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $ua = $_SERVER['HTTP_USER_AGENT']; + $data = json_decode(get_magic_quotes_gpc() ? stripslashes($_REQUEST['data']) : $_REQUEST['data'], true); + $token = isset($data['token']) ? $data['token'] : ''; + $query = sqlite_exec($dbhandle, "INSERT INTO requests (token, ip, ts, uri, referer, ua) VALUES (\"$token\", \"$ip\", \"$ts\", \"$uri\", \"$referer\", \"$ua\")", $error); if (!$query) { header("HTTP/1.0 500 Internal Server Error");