Patrick Canterino: GB: Dateizugriff sicher blocken

Beitrag lesen

Hallo Felix,

ich erstelle gerade ein Gästebuch. Es klappt alles ganz gut... solange nicht zwei Besucher "zufällig" zur selben Zeit ihre Postings abschicken (ist zwar noch nicht vorgekommen, aber wer weiß?).

Die Dokumentation zu PHP als auch das Forum hier haben mir nicht zufriedenstellend helfen können. flock() scheint problematisch zu sein (weil nicht auf allen OS identisch im Verhalten)...

Wenn mein Script aufgerufen wird, dann prüft es, ob eine Lock-Datei vorhanden ist. Theoretisch soll es dann so lange warten, bis diese Datei nicht mehr existiert, oder eben fünf Sekunden vorbei sind, um nicht in einen Timeout zu geraten.

Vergiss es. Das ist nicht zuverlässig, da in dem Moment, bei dem das Gästebuch denkt, die Lock-Datei sei gelöscht worden, die Lock-Datei von einem anderen Prozess wieder angelegt sein könnte.

Zuverlässig ist nur das Löschen einer Datei oder dio_open() in Verbindung mit O_EXCL, wobei das nicht unter Windows funktioniert. Symbolische Links wären auch möglich.

Viele Grüße
  Patrick Canterino

--
"Wien bleibt Wien - und das ist wohl das schlimmste, was man über diese Stadt sagen kann." (Alfred Polgar)