54 lines
1.5 KiB
PHP
54 lines
1.5 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Document</title>
|
|
</head>
|
|
<body>
|
|
|
|
</body>
|
|
</html>
|
|
|
|
|
|
<?php
|
|
/*
|
|
|
|
Arbeitsauftrag:
|
|
Erstellen Sie ein PHP-Skript namens „log_access.php”, das jeden Aufruf der Seite in der Textdatei „access_log.txt” speichert.
|
|
Beim Aufruf der Seite soll das Skript das aktuelle Datum und die aktuelle Uhrzeit erfassen.
|
|
- das aktuelle Datum und die aktuelle Uhrzeit erfassen.
|
|
- die IP-Adresse des Clients ermitteln (Tipp: $_SERVER)
|
|
- diese Informationen in die Datei access_log.txt im selben Verzeichnis schreiben.
|
|
|
|
Bonus:
|
|
Geben Sie im Browser zusätzlich an, wie viele Zugriffe insgesamt schon protokolliert wurden.
|
|
Tipp: Schauen Sie sich die Funktionen file() und readfile() an oder nutzen Sie fread() wie bisher.
|
|
|
|
*/
|
|
|
|
$now = date(DATE_RFC2822, time()); // current time
|
|
$userIP = $_SERVER['REMOTE_ADDR'] ; // users ip
|
|
|
|
$file = "access_log.txt";
|
|
$fp = fopen($file, 'r') or die ("Cannot open file"); // open file for writing
|
|
|
|
if (countLines($file) < 2) {
|
|
$txt = "Count | Date | IP\n";
|
|
fwrite($fp, $txt);
|
|
$count = countLines($file);
|
|
$txt = "$count | $now | $userIP\n";
|
|
fwrite($fp, $txt);
|
|
echo countLines($file) -1;
|
|
} else {
|
|
$count = countLines($file) - 1;
|
|
$txt = "$count | $now | $userIP\n";
|
|
fwrite($fp, $txt);
|
|
echo countLines($file) - 1;
|
|
}
|
|
|
|
function countLines($currentFile){
|
|
return count(file($currentFile));
|
|
}
|
|
|
|
fclose($fp); |