Hallo,
ja, du würdest ständig Dateien mit immer neuen Namen erzeugen, die vorhandenen bleiben aber liegen.
ja hast du recht, muss natürlich noch unlink() auf die alte Datei, bzw. anstatt touch() lieber gleich rename();
Machen wir ein Beispiel mit der klassischen Methode, die du zuerst genannt hast. Zwei Requests, hier A und B, werden kurz hintereinander bearbeitet, so dass sie sich zeitlich überschneiden.
Request A Request B
Öffne Datei zum Lesen n/a
Lies den Dateiinhalt n/a
-> "42"
------- Task-Switch -------------------
Öffne Datei zum Lesen
Lies den Dateiinhalt
-> "42"
Sehr anschaulich, danke ;-)
Bedeutet dann wohl, dass dateibasierenden Speichermechanismen (bezogen auf den gleichen Dateinamen) grundsätzlich immer zu misstrauen sind, insbesondere bei starker Frequentierung.
Also bleiben als Alternativen:
Sqlite: Je nach Webspace Anbieter nicht vorhanden und Versionskonflikte(hatte ich selber schon)
* genauer: Hatte viele MYSQL Scripte in unzähligen Stunden umgearbeitet auf SQLITE, weil ich das nach wie vor eine tolle DB finde und so handlich. Dann kam die neue Version, die nicht nur Fehler produzierte, sondern durch die alten Scripte sogar nachhaltige Serverstörungen produzierte. Da auch die neue Funktionsreferenz und das Handling komplett schwieriger wurde, überlegte ich noch mich da einzuarbeiten, aber die Angst über kurz oder lang wieder vor dem Nichts, aufgrund einer neuen Version zu stehen, benutze ich heute sicherheitshalber wieder MYSQL, auch wenn ich SQLITE bevorzugen würde. Schade eigentlich.
Mysql: überdimensioniert für solche Kleinigkeiten
Logfiles: Vielleicht doch die beste Lösung
Fazit: Anfänger im Kurs Counter auf Textbasis erläutern, egal welche Variante und auf Gefahren hinweisen, zu fortgeschrittenem Kursverlauf die Logfilemethode darstellen.
Dank euch