Hello,
Ist Code vielleicht falsch?
Er ist zumindest unvollständig.
Eine Webseite ist normalerweise ein Multi-User-Objekt. Da die Webserver im Regelfall durchaus 150 parallele Prozesse darauf zulassen, muss man sich also um eine Strategie für gemeinsame Nutzung kümmern.
<?php
War die datei schon da?
sonst sollte man ein
$fp=fopen("count.txt","a");
fclose($fp);
voransetzen
#> $fp=fopen("count.txt","r+");
besser:
$fp=fopen("count.txt","rb+");
da auch Textorientierte OS dann die Datei binär öffen
#(was bei PHP allerdings hier nicht unbedingt erforderlich ist, da selten
binäre Speicherung von Zahlen stattfindet, sondern diese als ASCII-Zeichen abgelegt werden
jetzt muss man aber erst ein LOCK beantragen
flock($fp,LOCK_EX);
$counter=fgets($fp,100);
if (mktime(0,0,0)>filemtime("count.txt"))
wozu ist die Zeile da, wenn Du die Datei doch vorhin gar nicht neu angelegt hast?
{
$counter = 1;
}
else
{
$counter++;
}
echo $counter;
rewind($fp);
fputs($fp,$counter);
fclose($fp);
?>
Ordentliche Fehlerbehandlung müsste noch eingebaut werden!
Außerdem solltest Du keine unstrukturierten Daten ablegen.
Wenn Du den Einwand von Rouven berücksichtigen willst, dass ein Zugriff von derselben IP auf den Counter innerhalb z.B. 30 Sekunden abgewehrt werden soll, dann musst Du schon mehr als eine einzige Zahl abspeichern. Dafür eignen sich serialiserte assoziative Arrays.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau