Counter bei gleichzeitigem Zugriff ?
christoph
- php
0 Marc Reichelt
Hallo,
habe mir einen einfachen Counter gebaut, den ich dann mit einer IP-Sperre verbinde. Nur stellt sich bei mir jetzt die Frage:
Was passiert, wenn mehrere User meine Seite öffnen und mit der count.txt Datei arbeiten? (was bei ca. 500 Besuchern pro Tag keine Unmöglichkeit ist) Habe die Datei immer Locken lassen!
$fcount = "daten/counter/count.txt";
if (!file_exists($fcount)) { fopen($fcount, "a"); }
$count = fopen ($fcount, "r+");
flock ($count, LOCK_EX);
$abruf = fgets($count,10);
$abruf = $abruf+1;
rewind ($count);
fputs ($count, $abruf);
flock ($count, LOCK_UN);
fclose($count);
danke
Hi!
So wie ich das bei dir lese bekommen alle weiteren User, die zur gleichen Zeit auf die Datei zugreifen wollen, einen Fehler bei fopen - so in etwa "Datei konnte nicht geöffnet werden".
cu
Marc Reichelt || http://www.step2identity.com/
Hi,
und was kann ich dagegen tun, dass jeder registriert wird. Und kein Fehler gibt.
danke
Hi,
und was kann ich dagegen tun, dass jeder registriert wird. Und kein Fehler gibt.
nutze doch eine Datenbank, wenn es geht.
Gruß
Reiner
Hi,
habe zwar eine mysql Datenbank aber null Ahnung wies geht und morgen sollte meine Seite komplett fertig sein!
mfg chris
Hallo Chris
habe zwar eine mysql Datenbank aber null Ahnung wies geht und morgen sollte meine Seite komplett fertig sein!
Dann hast du wahrscheinlich Pech gehabt, es sei denn, du lernst bis morgen wie MySQL in Verbindung mit PHP funktioniert oder du findest jemand, der dir bis morgen eine entsprechende Lösung entwickelt, was dann wohl teuer wird.
Schöne Grüße
Johannes
Hi!
Es bleibt noch eine letzte (und gute) Möglichkeit:
Du erstellst eine Schleife, die fopen so_und_so_viel Mal ausführt, solange fopen den Wert false hat.
Quasi so:
while( ($fn = @fopen("datei.txt","r")) == false)
{
}
// Datei ist jetzt offen
Achtung: das angegebene Skript probiert unendlich Mal, die Datei zu öffnen!
cu
Marc Reichelt || http://www.step2identity.com/