Hab mich bei PHP ausgesperrt!

blck

blck

Routinier
Hallo,
bin grad dabei ein Gästebuch zu schreiben und um abzufangen das ein Benutzer wenn er nur den Seitenbau aktualisiert (Firfefox F5) seinen Eintrag nochmal in mein Gästebuch schreibt!
Dafür hab ich eine Routine geschrieben, die die IP Adresse speichert und die Sekunden seit 1970. Wenn der Unterscheid zur aktuellen Sekundenzahl und der des gespeicherten Werts größer is als 300 wird die Variable erroripmsg auf 0 gesetzt. So weiß ich später das das net schon gespeichert ist!
Nun zu meinem Problem, er sagt mir egal wie immer das die erroripmsg auf 1 sitzt!
Sprich er zeigt mir die Fehlermeldung an! (Du kannst nich so schnell hintereinander was speichern!)
Hier mal der Text, vllt. könnt ihr mir ja helfen.
PHP:
if ($_POST)
{
$handle = fopen ($ipfile,"w"); //$ipfile ist die Datei in die Sekunden und Ipadresse gespeichert werden!

if ($handle)
{
	fwrite ($handle, $REMOTE_ADDR ."\n". date(U));
	fclose ($handle);
}
else
	echo "Datei kann nicht geöffnet werden";
if (is_file ($ipfile))
{
$handle = fopen ($ipfile, "r");
if ($handle)
{
 $line1 = trim (fgets ($handle, 1024));
 $line2 = trim (fgets ($handle, 1024));
fclose ($handle); 

 if ($line1 == $REMOTE_ADDR)
  {
   $zeit = date(U) - $line2;
	if ($zeit >= "300") $erroripmsg = 0;
		else
		{
			$erroripmsg = 1;
			echo "Du kannst nicht so schnell hintereinander etwas SCHREIBEN";
			echo $zeit;
		}

  }

}
}
else $erroripmsg = 0;
}
?>


<!--Daten speichern!-->

<?
if ($_POST)
{
	if (($errormsg == 0) && ($erroripmsg == 0)) //Nur wenn Benutzer Daten eingegeben hat erfolgt speicherung
	 {
 		$handle = fopen ($filename, "a");
		 if ($handle)
Fragen beantworte ich gerne!
Gruß Blck
 
Hi!

PHP:
if ($zeit >= "300") $erroripmsg = 0;

Um den Vergleichsoperator ">=" (größer gleich) zu verwenden, muss die Variable vom Wert Integer sein, also dürfen keine Anführungsstriche verwendet werden, sonst sieht PHP das "300" als String und kann es nicht mit $zeit vergleichen.

Also:
PHP:
if ($zeit >= 300) $erroripmsg = 0;

Gruß,
iR.
 
Danke, das wusst ich nicht, ich dachte ohne die "" seis kein zahlenwert!

Aber danke werds mal ausprobieren!
Blck
 

Ähnliche Themen

Queue für copy Script

NagiosGrapher 1.7.1 funktioniert nicht

in_array Problem

[PHP] Autologin-Funktion

php if-Bedingung wird nicht eingehalten

Zurück
Oben