Matze: race-condition-Nachfrage

Beitrag lesen

Nun, zumindest war da auch ein Nur-Schreib-Beispiel enthalten. Das öffnete die Datei im Modus a (du: w), setzte die Sperre und nahm dann das ftruncate().

Ich muss aber nur einmal, beim ersten mal "nur schreiben". Ansonsten muss ich ja alle Eingaben mit den Daten vergleichen.

1. beim Anmelden: steht der Benutzer schon drin?
2. beim Login: stimmen Benutzer und Passwort?
3. Passwort ändern
4. Passwort vergessen: gibt es die angegebene mail-Adresse in der Liste?
5. Dbl-Opt-In beim Anmelden und Passwort vergessen

So, dann müsste ich mir das dritte Beispiel anschauen.

  
$fp = fopen ('counter.txt', 'r+');  
if (!is_resource ($fp)) {  
  die ('Konnte die Datei nicht öffnen!');  
}  
if (!flock ($fp, LOCK_EX)) {  
  die ('Sperren der Datei fehlgeschlagen!');  
}  

Wie kann ich die Fehlerausgaben vermeiden?
Damit kann ein Benutzer sowieso nichts anfangen und für ihn soll das Script ja weiterlaufen.
Dann benutze ich ja fopen() gar nicht zum lesen. Wie schon gesagt, hatte ich das eigentlich mit include() gemacht. Jetzt lade ich eine reine XML-Datei mit simplexml_load_file(). Muss ich also fopen() davor setzen und funktioniert simplexml_load_file() dann überhaupt noch?

Oder müsste ich es dann so machen?

  
$fp = fopen ('counter.txt', 'r+');  
$xml = simplexml_load_file($fp);  

Danke und Grüße, Matze