So bin neu hier im Forum und auch noch relativ neu in PHP. Ich habe ein Problem mit einem kleinen Script und habe bis jetzt noch nirgendwo eine Antwort auf mein Problem gefunden.
Ich hab ein kleines Umfragenscript gebastelt welches eine kleine Reloadsperre beinhaltet. Die IP des Besuchers wird in der ip.txt gespeichert! In der ip.txt befindet sich nur die IP des letzten Besuchers (ja ich weiß ist nicht die beste Methode )
Hier mal das Script:
ZUM PROBLEM:
Also erstaml das merkwürdigste: LOCAL funktioniert alles einwandfrei! Stell ich das Script jedoch online und schreibe in die ip.txt bereits eine IP hinein damit fread(); funktioniert, geht das Script genau einmal,
Durch ausführen des Scriptes wird die ip in der ip.txt gelöscht und das dokument ist leer. Beim wiederholten Aufrufen des Scriptes entsteht dann wegen fread(); ein Fehler.
Wieso wird der Inhalt gelöscht?
Wie gesagt local ist das nicht der Fall, Chmod kann ich ausschließen, ebenso eine erschöpfung der Disk-Quota.
Die Fehlermeldung:
Warning: fread(): Length parameter must be greater than 0. in /srv/www/htdocs/web335/html/check.php on line 433
-> weil eben der Inhalt der ip.txt weg ist...
Nochmal kurze Zusammenfassung:
Es wird keine NEUE ip in die ip.txt geschrieben sondern NUR die alte gelöscht.
M.f.G
Max
ps:
Nochmals weil es oft falsch verstanden wurde:
Bevor des erstmaligen Ausführen des Scriptes befindet sich schon eine ip in der ip.txt, deshalb geht der script auch das erste mal ohne Fehlermeldung, jedoch befindet sich danach keine mehr in der ip.txt!
Ich hab ein kleines Umfragenscript gebastelt welches eine kleine Reloadsperre beinhaltet. Die IP des Besuchers wird in der ip.txt gespeichert! In der ip.txt befindet sich nur die IP des letzten Besuchers (ja ich weiß ist nicht die beste Methode )
Hier mal das Script:
PHP-Code:
//ip ermitteln
$ip="$REMOTE_ADDR";
$ipdatei=fopen("umfragei/ip.txt","r");
$groesse=filesize("umfragei/ip.txt");
$ip2=fread($ipdatei,$groesse);
fclose($ipdatei);
//ip vergleichen
if ($ip==$ip2){
print("Sie haben schon abgestimmt.");
}
//neue ip einschreiben
else{
$ip="$REMOTE_ADDR";
$ipdatei=fopen("umfragei/ip.txt","w");
fwrite($ipdatei,$ip);
fclose($ipdatei);
Also erstaml das merkwürdigste: LOCAL funktioniert alles einwandfrei! Stell ich das Script jedoch online und schreibe in die ip.txt bereits eine IP hinein damit fread(); funktioniert, geht das Script genau einmal,
Durch ausführen des Scriptes wird die ip in der ip.txt gelöscht und das dokument ist leer. Beim wiederholten Aufrufen des Scriptes entsteht dann wegen fread(); ein Fehler.
Wieso wird der Inhalt gelöscht?
Wie gesagt local ist das nicht der Fall, Chmod kann ich ausschließen, ebenso eine erschöpfung der Disk-Quota.
Die Fehlermeldung:
Warning: fread(): Length parameter must be greater than 0. in /srv/www/htdocs/web335/html/check.php on line 433
-> weil eben der Inhalt der ip.txt weg ist...
Nochmal kurze Zusammenfassung:
Es wird keine NEUE ip in die ip.txt geschrieben sondern NUR die alte gelöscht.
M.f.G
Max
ps:
Nochmals weil es oft falsch verstanden wurde:
Bevor des erstmaligen Ausführen des Scriptes befindet sich schon eine ip in der ip.txt, deshalb geht der script auch das erste mal ohne Fehlermeldung, jedoch befindet sich danach keine mehr in der ip.txt!
Kommentar