PHP gleichzeitiger Dateizugriff - gefährlich?
Ich habe mir ein Bestellformular zusammengebastelt.
- Beim Absenden wird das Formular per POST an ein PHP gesentet.
- dieses PHP schreibt diese Daten dann in eine txt-Datei
(jede Bestellung hat eine Zeile zur verfügung)
Das klappt alles einwandfrei auch das weiterverarbeiten ist kein Problem.
Ich bin mich jetzt aber nicht ganz sicher, was geschieht, wenn nun gleichzeitig zwei Bestellungen eingehen. gibt das irgendwelche komplikationen? Oder wird das schön der Reihe nach abgearbeitet?
so nebenbei:
wieso hat es denn Zwei verschiedene PHP Bereiche:
1. ------ PHP (Hypertext Preprocessor)
2. ------ @php
- Beim Absenden wird das Formular per POST an ein PHP gesentet.
- dieses PHP schreibt diese Daten dann in eine txt-Datei
(jede Bestellung hat eine Zeile zur verfügung)
Das klappt alles einwandfrei auch das weiterverarbeiten ist kein Problem.
Ich bin mich jetzt aber nicht ganz sicher, was geschieht, wenn nun gleichzeitig zwei Bestellungen eingehen. gibt das irgendwelche komplikationen? Oder wird das schön der Reihe nach abgearbeitet?
so nebenbei:
wieso hat es denn Zwei verschiedene PHP Bereiche:
1. ------ PHP (Hypertext Preprocessor)
2. ------ @php
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 128397
Url: https://administrator.de/forum/php-gleichzeitiger-dateizugriff-gefaehrlich-128397.html
Ausgedruckt am: 25.12.2024 um 18:12 Uhr
3 Kommentare
Neuester Kommentar
Moin,
das kann sogar zu sehr großen Problemen führen wenn du da keine Fehlerbehandlung betreibst. Während ein Prozess die Datei offen hat wird der zweite Prozess keinen Schreibzugriff auf die Datei erhalten können. Somit könnte deine zweite Bestellung im Nirvana landen...
Warum machst du das denn nicht mit ner Datenbank im Hintergrund - da hättest du die Probleme nicht...
das kann sogar zu sehr großen Problemen führen wenn du da keine Fehlerbehandlung betreibst. Während ein Prozess die Datei offen hat wird der zweite Prozess keinen Schreibzugriff auf die Datei erhalten können. Somit könnte deine zweite Bestellung im Nirvana landen...
Warum machst du das denn nicht mit ner Datenbank im Hintergrund - da hättest du die Probleme nicht...
Evtl. hilft dir der Befehl flock() - funktioniert aber nicht immer "...flock() funktioniert nicht auf NFS und verschiedenen anderen vernetzten Dateisystemen ..."
Du solltest auch daran denken das bei deinem Beispiel auch schnell mal ein Timeout kommen könnte und dann werden die Bestellungen nicht gespeichert - oder ebenfalls die Datei zerschossen.
Wenn Du für deine Anwendung keine "fette" Datenbank haben willst - benutze doch SQLite.
Ich arbeite bei kleinen Projekten auch damit ... PDO-Objekt in PHP ( http://php.net/manual/de/book.pdo.php )
Du solltest auch daran denken das bei deinem Beispiel auch schnell mal ein Timeout kommen könnte und dann werden die Bestellungen nicht gespeichert - oder ebenfalls die Datei zerschossen.
Wenn Du für deine Anwendung keine "fette" Datenbank haben willst - benutze doch SQLite.
Ich arbeite bei kleinen Projekten auch damit ... PDO-Objekt in PHP ( http://php.net/manual/de/book.pdo.php )