Shadowcrow: Datei sperren

Beitrag lesen

hi $name,

Meine Idee wäre die folgende (stark vereinfacht gesagt):

  1. Auslesen des Inhalts: Datei mit LOCK_SH sperren, Inhalt ausgeben, Datei schließen. Hidden-Feld generieren, das den ursprünglichen Inhalt der Datei enthielt (oder einen SHA1-Hash davon oder was auch immer).

  2. Schreiben des Inhalts: Datei mit LOCK_EX sperren, Inhalt auslesen, vergleichen mit mitgesendetem Hidden-Feld;

* wenn übereinstimmt: Datei neu schreiben mit neuem Inhalt des Users,
    Datei schließen.
  * wenn nicht übereinstimmt: Datei schließen, Warnmeldung an den User
    ausgeben und ihm mitteilen, was er überschreiben würde + neuen Inhalt
    im jetztigen Hidden-Feld mitsenden so dass er das Formular erneut
    absenden kann nur dass diesmal das Überschreiben klappen würde.

danke, das hört sich super an ich hatte ja eher einen anderen ansatz aber bei diesem wären die user eingaben verworfen worden (wäre jetzt auch nicht tragisch, tippen stärkt die finger ;-)) das ist wesentlich eleganter.

Hinweis: Mit file() solltest Du keine Dateien auslesen, weil file() sie nicht sperrt. Nimm lieber die Methoden die ich in meinem Artikel beschrieben habe.

hm ja, mir erschien es nur einfacher, weil bei file die einzelnen zeilen schon automatisch durch die zeilenumbrüche getrennt sind und so auch in ein array eingelesen werden, ich wußte nicht wie ich die werte sonst trennen und einlesen sollte, aber ich könnte ja die datei öffnen, mit LOCK_SH sperren, mit file() auslesen und dann wieder schließen.. hm, warum hab ich jetzt das gefühl das das krude ist...

gruss
shadow

--
Vor dem Parser und auf hoher See sind wir allein in Gottes Hand