dedlfix: Formulardaten in txt schreiben

Beitrag lesen

Hi!

Warum so viel Mühe mit fwrite() und noch ein paar mehr Funktionen, wenn es mit file_put_contents() in einem Aufwasch geht?
Das sehe ich noch nicht. Wie detektierst Du, dass es die Datei nicht schon gab unter dem Namen?
Na gut, das w+ im fopen() stellt ja schonmal sicher, dass ein Überschreiben existierender Datenen nicht möglich ist.
Verwechselst Du das nicht mit "x+"?

Ja, das x+ meinte ich. Das w+ von Peda7 hat mich abgelenkt.

Braucht es dann überhaupt noch ein Locking? Es kann doch eigentlich sowieso keine zweite Script-Instanz in die selbe Datei schreiben, weil das ja durch das w+ schon das Öffnen abgelehnt wird.

Wenn wir mal annehmen, ich hätte x+ geschrieben ...

Wie kommst Du darauf?
Es kann jede andere Prozess in eine gerade neu eröffnete Datei hineinschreiben, so zumindest bei den gängigen Filesystemen für DOS-Systeme, um die es hier ja wohl geht. Bei OS400 isht das anders aus.

... dann beendet sich ein fopen() mit false, wenn die Datei schon existiert. Es ist wohl davon auszugehen, dass allein dieses PHP-Script Erstellversuche in dem einen festgelegten Verzeichnis unternehmen wird. Und wenn die Datei einmal existiert, sträubt sich x+ gegen jeden weiteren Schreibzugriff seitens des PHP-Scripts. Der Auswertende kann davon ungehindert die Dateien öffnen und verändern. Sollte es dabei Konfliktsituationen geben, ist das nicht mehr im Focus des PHP-Scripts. Erst wenn er eine Datei löscht kann das PHP-Script eine neue gleichen Namens anlegen.

Lo!