Welcome to mirror list, hosted at ThFree Co, Russian Federation.

piwik.php « javascript « tests - github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 856193e330364ade9aa7e6068da5a97472923f16 (plain)
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();