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");