17bd08c30SSascha Leib<?php /* BOTMON PLUGIN HEARTBEAT TICKER SCRIPT */ 2cf9f7fe8SSascha Leib 3*13c9d29dSSascha Leib 4abfc901fSSascha Leib// what is the session identifier? 5*13c9d29dSSascha Leib$sessionId = $_GET['u'] ?? ''; 6*13c9d29dSSascha Leibif ($sessionId == '') { 7*13c9d29dSSascha Leib $sessionId = $_COOKIE['DokuWiki'] ?? ''; 8*13c9d29dSSascha Leib} 9*13c9d29dSSascha Leibif ($sessionId == '') { 10abfc901fSSascha Leib $sessionId = $_SERVER['REMOTE_ADDR'] ?? ''; 11f162e4a9SSascha Leib if ($sessionId == '127.0.0.1' || $sessionId == '::1') { 12abfc901fSSascha Leib $sessionId = 'localhost'; 13abfc901fSSascha Leib } 14abfc901fSSascha Leib} 15abfc901fSSascha Leib 16cf9f7fe8SSascha Leib/* build the resulting log line (ensure fixed column positions!) */ 17cf9f7fe8SSascha Leib$logArr = Array( 1887d76396SSascha Leib $_SERVER['REMOTE_ADDR'] ?? '', /* remote IP */ 1987d76396SSascha Leib $_GET['p'] ?? '', /* page ID */ 20abfc901fSSascha Leib $sessionId, /* Session ID */ 219f1ee8c1SSascha Leib $_SERVER['HTTP_USER_AGENT'] ?? '' /* User agent */ 22cf9f7fe8SSascha Leib); 23cf9f7fe8SSascha Leib 24cf9f7fe8SSascha Leib/* create the log line */ 254cddc661SSascha Leib$filename = 'logs/' . gmdate('Y-m-d') . '.tck.txt'; /* use GMT date for filename */ 26cf9f7fe8SSascha Leib$line = gmdate('Y-m-d H:i:s'); /* use GMT time for log entries */ 27cf9f7fe8SSascha Leibforeach ($logArr as $val) { 28cf9f7fe8SSascha Leib $line .= "\t" . $val; 29cf9f7fe8SSascha Leib}; 30cf9f7fe8SSascha Leib 31cf9f7fe8SSascha Leib/* write the log line to the file */ 3287d76396SSascha Leib$tickfile = fopen($filename, 'a'); 33cf9f7fe8SSascha Leibif (!$tickfile) { 34cf9f7fe8SSascha Leib http_response_code(500); 35cf9f7fe8SSascha Leib die("Error: Unable to open log file. Please check file permissions."); 36cf9f7fe8SSascha Leib} 37cf9f7fe8SSascha Leibif (fwrite($tickfile, $line . "\n") === false) { 38cf9f7fe8SSascha Leib http_response_code(500); 39cf9f7fe8SSascha Leib fclose($tickfile); 40cf9f7fe8SSascha Leib die("Error: Could not write to log file."); 41cf9f7fe8SSascha Leib} 42cf9f7fe8SSascha Leibfclose($tickfile); 43cf9f7fe8SSascha Leib 44cf9f7fe8SSascha Leib/* Send "Accepted" header */ 45cf9f7fe8SSascha Leibhttp_response_code(202); 46cf9f7fe8SSascha Leibecho "OK";