Tom: Ich brauche mal ein wenig Inspiration, Datenbankabfrage Cachen

Beitrag lesen

Hello,

if (file_exists("../berechtigungen/user.txt"))
{
      $date = file_get_contents("../berechtigungen/user.txt");
}else{

Du kannst

Anmerkung von Mister Tocttou[1]: Du musst!

dir noch einen Dateisystemzugriff sparen, wenn du direkt file_get_contents() ausführst. Wenn die Datei nicht vorhanden/lesbar ist, gibt die Funktion false zurück, auf das du testen kannst. Zum Unterscheiden von einer leeren Datei musst du aber einen typsicheren Vergleich verwenden.

if (($date = file_get_contents("../berechtigungen/user.txt")) === false)
  mysqlabfrage

Und wenn wir schon mal dabei sind: file_get_contents() ist nur bedingt multithreadingfest.
Betrachtet werden muss ja immer das Pärchen aus Lese- und Schreibfunktion. Solange die nicht mit einem gemeinsamen Handle arbeiten können, oder ein anderer _gemeinsamer_ Mechanismus für die Zugriffskontrolle besteht, bleibt das TOCTTOU-Problem bestehen.

http://en.wikipedia.org/wiki/Time-of-check-to-time-of-use
http://aktuell.de.selfhtml.org/artikel/programmiertechnik/dateisperren/

Es ist also angeraten, dass der OP mit den klassischen Funktionen fopen(), flock(), fread(), fwrite() und fclose() arbeitet.

[1] so hattest Du mich doch neulich genannt, oder?

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de