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