$Logdatei = array('Name' => 'index.log.php', 'Max' => 1048576, 'Min' => 786432,
'Zeile 1' => '<?PHP exit; /* Zeit "Benutzername" "Meldung" '
. 'Provider/
IP:Port Methode:Link Postdaten Browser */ ?>');
function AddLog($S) {
global $Meldungen, $BenutzernameAnzeige, $Logdatei;
$H = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$S = date('d.m.Y H:i:s', time()) . "\t\"" . addslashes($BenutzernameAnzeige) . "\"\t\"" . addslashes($S) . "\"\t"
. (($_SERVER['REMOTE_ADDR'] != $H) ? $H : 'unbekannt') . '/' . $_SERVER['REMOTE_ADDR'] . ':' . $_SERVER['REMOTE_PORT'] . "\t"
. $_SERVER['REQUEST_METHOD'] . ':' . $_SERVER['VHOST'] . $_SERVER['REQUEST_URI'] . "\t"
. serialize($_POST) . "\t"
. "\"" . addslashes($_SERVER['HTTP_USER_AGENT']) . "\"\r\n";
@touch('./' . $Logdatei['Name']);
@chmod('./' . $Logdatei['Name'], 0660);
$Datei = @fopen('./' . $Logdatei['Name'], 'r+');
if ($Datei) {
@flock($Datei, LOCK_EX);
@fseek($Datei, 0, SEEK_END);
$i = @ftell($Datei);
if (($i == 0) || ($i > $Logdatei['Max'] - strlen($S))) {
$i -= $Logdatei['Min'] - strlen($Logdatei['Zeile 1'] . "\r\n") - strlen($S);
@fseek($Datei, 0);
while (($i - @ftell($Datei) > $Logdatei['Min']) && (@fgets($Datei) !== false)) ;
$i = @ftell($Datei);
@fseek($Datei, 0);
@fputs($Datei, $Logdatei['Zeile 1'] . "\r\n");
$k = @ftell($Datei);
while (($t = @fgets($Datei)) !== false) {
$i = @ftell($Datei);
@fseek($Datei, $k);
@fputs($Datei, $t);
$k = @ftell($Datei);
@fseek($Datei, $i);
}
@ftruncate($Datei, $k);
@fseek($Datei, $k);
}
@fputs($Datei, $S);
@flock($Datei, LOCK_UN);
@fclose($Datei);
} else $Meldungen[] = '*Logdatei konnte nicht geöffnet werden.';
}