Hallo
ich benutze in vielen Bereichen folgenden Code. Hier ein Beispiel von meinem Gästebuch. Das habe ich vor langer Zeit mal im Internet gefunden. Ich frage mich gerade, ob das erste „flock“ (unter dem fopen) überhaupt nötig ist?
Ich möchte jedenfalls folgendes erreichen. Wenn zwei Besucher zur gleichen Zeit einen Gästebuch Eintrag schreiben, dann soll dieser Code dafür sorgen, dass alles funktioniert.
$data=fopen(„gaestebuch.dat“,„a“);
flock($data,LOCK_EX);
$canWrite = false;
while (!$canWrite)
{
$canWrite = flock($data, LOCK_EX);
}
fputs($data,„inhalt…\r\n“);
fclose($data);
An einer anderen Stelle wird das Gästebuch mit:
$gb = file(„gaestebuch.dat“);
gelesen. Geht dies immer? Oder gibt es hier Probleme, wenn gerade ein User schreibt (also der obige code mit dem „flock“ ausgeführt wird)?
Mit den Infos komme ich nicht so ganz klar bzw. die Praxis kann man schlecht testen. Jedenfalls hört sich „LOCK_SH“ (da steht „zum Lesen geeignet“) besser an und da ich lese, es gibt noch „LOCK_UN“ (entsperren), frage ich mich ob ich dies benutzen muss. Könnte mir aber vorstellen, dass mit „fclose“ dies sowieso gemacht wird.
Ich hoffe mal, mit dem ganzen kennt sich jemand aus.
Gruß
Michael