xref: /plugin/botmon/tick.php (revision cf9f7fe823093a2f336627bc7e05ea0296d98bca)
1*cf9f7fe8SSascha Leib<?php /* MONITOR PLUGIN HEARTBEAT TICKER SCRIPT */
2*cf9f7fe8SSascha Leib
3*cf9f7fe8SSascha Leib/* build the resulting log line (ensure fixed column positions!) */
4*cf9f7fe8SSascha Leib$logArr = Array(
5*cf9f7fe8SSascha Leib	intval($_GET['t']), /* timestamp */
6*cf9f7fe8SSascha Leib	$_GET['p'] ?? null, /* page ID */
7*cf9f7fe8SSascha Leib	$_SERVER['REMOTE_ADDR'] ?? 'null', /* remote IP */
8*cf9f7fe8SSascha Leib	$_COOKIE['DokuWiki'] ?? 'null', /* DokuWiki session ID */
9*cf9f7fe8SSascha Leib	$_GET['t'] ?? null /* client time */
10*cf9f7fe8SSascha Leib);
11*cf9f7fe8SSascha Leib
12*cf9f7fe8SSascha Leib/* create the log line */
13*cf9f7fe8SSascha Leib$filename = 'logs/' . gmdate('Y-m-d') . ".tck"; /* use GMT date for filename */
14*cf9f7fe8SSascha Leib$line = gmdate('Y-m-d H:i:s'); /* use GMT time for log entries */
15*cf9f7fe8SSascha Leibforeach ($logArr as $val) {
16*cf9f7fe8SSascha Leib	$line .= "\t" . $val;
17*cf9f7fe8SSascha Leib};
18*cf9f7fe8SSascha Leib
19*cf9f7fe8SSascha Leib/* write the log line to the file */
20*cf9f7fe8SSascha Leib$tickfile = fopen($filename, "a");
21*cf9f7fe8SSascha Leibif (!$tickfile) {
22*cf9f7fe8SSascha Leib	http_response_code(500);
23*cf9f7fe8SSascha Leib	die("Error: Unable to open log file. Please check file permissions.");
24*cf9f7fe8SSascha Leib}
25*cf9f7fe8SSascha Leibif (fwrite($tickfile, $line . "\n") === false) {
26*cf9f7fe8SSascha Leib	http_response_code(500);
27*cf9f7fe8SSascha Leib	fclose($tickfile);
28*cf9f7fe8SSascha Leib	die("Error: Could not write to log file.");
29*cf9f7fe8SSascha Leib}
30*cf9f7fe8SSascha Leibfclose($tickfile);
31*cf9f7fe8SSascha Leib
32*cf9f7fe8SSascha Leib/* Send "Accepted" header */
33*cf9f7fe8SSascha Leibhttp_response_code(202);
34*cf9f7fe8SSascha Leibecho "OK";