Guten Morgen, liebe Workaholics ;-)
Als Einstieg in unser Gästebuch wird zunächst ein Menü angezeigt, das folgende Punkte enthält:
-Eintrag erstellen
-Einträge lesen
-Gästebuch verwalten
-Statistik anzeigen
Nun habe ich in dieser Menüdatei einen einfachen Reloadschutz auf Textbasis mit Vergleich der IP-Adresse und des Zeitstempels eingebaut, der die Schaltfläche "Eintrag erstellen" verstecken bzw. anzeigen soll, je nach dem, ob innerhalb eines vorgegebenen Zeitraums bereits ein Eintrag erstellt wurde oder nicht:
<html>
<head>
...
</head>
<body>
<?php
$Zeitstempel = time ();
$Zeitsperre = 86400;
$Gefunden = false;
$GueltigeIP = true;
$DateiIP = "CSV.GaestebuchIP.csv";
$ListeIP = file ($DateiIP);
$Fehler = false;
$FehlermeldungenTemp[] = "";
// IP feststellen
if ($_SERVER["HTTP_X_FORWARDED_FOR"])
{
if ($_SERVER["HTTP_CLIENT_IP"])
$IP = $_SERVER["HTTP_CLIENT_IP"]; // Proxy-Server
else
$IP = $_SERVER["REMOTE_ADDR"]; // Proxy-Server
$IP = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else
{
if ($_SERVER["HTTP_CLIENT_IP"])
$IP = $_SERVER["HTTP_CLIENT_IP"];
else
$IP = $_SERVER["REMOTE_ADDR"];
}
// IP prüfen
$GueltigeSegmente = 0;
if (ereg('^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$', $IP, $segment))
{
if (($IP != "0.0.0.0") || ($IP != "255.255.255.255"))
{
for ($i = 1; $i < 5; $i++)
{
if ($segment[$i] >= 0 && $segment[$i] <= 255)
$GueltigeSegmente += 1;
}
if ($GueltigeSegmente != 4)
$GueltigeIP = false;
}
else
$GueltigeIP = false;
}
else
$GueltigeIP = false;
// Reload prüfen
if ($GueltigeIP)
{
if (count ($ListeIP) > 0)
{
foreach ($ListeIP as $Zeile)
{
$GesplitteteZeile = explode("|", $Zeile);
if (($GesplitteteZeile[0] + $Zeitsperre) > $Zeitstempel)
$NeueIPListe[] = trim ($Zeile) . "\n";
}
foreach ($NeueIPListe as $Zeile)
{
$GesplitteteZeile = explode("|", $Zeile);
if (trim ($GesplitteteZeile[1]) == $IP)
$Gefunden = true;
}
}
$DateiZeiger = fopen($DateiIP, "w");
if (count ($ListeIP) > 0)
{
foreach ($NeueIPListe as $Zeile)
fwrite ($DateiZeiger, trim ($Zeile) . "\n");
}
if (!$Gefunden)
fwrite ($DateiZeiger, $Zeitstempel . "|" . $IP . "\n");
fclose ($DateiZeiger);
... Aufbau des Menüs ...
if (!$Gefunden)
echo '<img border="0" src="pic/nav/N_eintrag_erstellen.png" width="86" height="16">';
else
echo '<img border="0" src="pic/gfx/L_spacer.gif" width="86" height="1">';
... Aufbau des Menüs ...
}
else
echo "Ungültige IP-Adresse";
?>
</body>
</html>
Mein Problem ist nun aber, dass die Variable "$Gefunden" scheinbar übergangen wird, weil die Schaltfläche "Eintrag erstellen" immer angezeigt wird.
Was habe ich falsch gemacht ?
Schon mal vielen Dank im Voraus.
Gruss, Enrico