1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
<?php
// piwik.php test harness
require_once(dirname(__FILE__).'/SQLite.php');
function sendWebBug() {
$trans_gif_64 = "R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";
header("Content-type: image/gif");
print(base64_decode($trans_gif_64));
}
if (!file_exists("enable_sqlite")) {
sendWebBug();
exit;
}
if (!class_exists('SQLite')) {
sendWebBug();
exit;
}
$sqlite = new SQLite( 'unittest.dbf' );
if (!$sqlite) {
header("HTTP/1.0 500 Internal Server Error");
exit;
}
if (filesize(dirname(__FILE__).'/unittest.dbf') == 0)
{
try {
$query = @$sqlite->exec( 'CREATE TABLE requests (token TEXT, ip TEXT, ts TEXT, uri TEXT, referer TEXT, ua TEXT)' );
} catch (Exception $e) {
header("HTTP/1.0 500 Internal Server Error");
exit;
}
}
if (isset($_GET['requests'])) {
$token = get_magic_quotes_gpc() ? stripslashes($_GET['requests']) : $_GET['requests'];
$ua = $_SERVER['HTTP_USER_AGENT'];
echo "<html><head><title>$token</title></head><body>\n";
sleep(5);
// $result = $sqlite->query_array("SELECT uri FROM requests");
$result = @$sqlite->query_array("SELECT uri FROM requests WHERE token = \"$token\" AND ua = \"$ua\"");
if ($result !== false) {
$nofRows = count($result);
echo "<span>$nofRows</span>\n";
foreach ($result as $entry) {
echo "<span>". $entry['uri'] ."</span>\n";
}
}
echo "</body></html>\n";
} else {
if (!isset($_REQUEST['data'])) {
header("HTTP/1.0 400 Bad Request");
} else {
$ip = $_SERVER['REMOTE_ADDR'];
$ts = $_SERVER['REQUEST_TIME'];
$uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$uri .= '?' . file_get_contents('php://input');
}
// $uri = htmlspecialchars($uri);
$referrer = 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("INSERT INTO requests (token, ip, ts, uri, referer, ua) VALUES (\"$token\", \"$ip\", \"$ts\", \"$uri\", \"$referrer\", \"$ua\")");
if (!$query) {
header("HTTP/1.0 500 Internal Server Error");
} else {
// echo 'Number of rows modified: ', $sqlite->changes();
sendWebBug();
}
}
}
$sqlite->close();
|