echo $begrüßung;
(Un-)regelmässig setzt sich der counter auf Null zurück. Vielleicht Count.dat gelöscht.
- Wie kann ich den Grund dafür rausfinden?
Du könntest ein Error-Logfile führen. Teste vor Zugriff auf die Datei, ob sie vorhanden ist und schreibe eine entsprechende Meldung in eine Datei.
- Ist irgendwas in meinem Code dafür prädestiniert?
Ja, es gibt mindestens eine Schwachstelle
$data = file("count.dat");
Wenn bei file() ein Fehler auftritt, wird kein Array sondern false zurückgeliefert. Diesen Sonderfall berücksichtigst du nicht. Vermutlich tritt dieser Fall auf, wenn die Datei gerade mit flock() gesperrt ist.
$text = $data[0];
false hat kein Element 0. Die entsprechende Notice wirst du sicherlich ignorieren, weil das die Default-Einstellung für das error_reporting ist. Hier hilft nur, Fehler, die im unbeaufsichtigtem Betrieb auftreten zu loggen. Dazu könnte man error_reporting auf E_ALL, display_errors auf 0, log_errors auf 1 und error_log auf einen Dateinamen setzen. Diese Datei sollte man dann regelmäßig kontrollieren.
$text = $text + 1;
Hier schlägt dann die automatische Typumwandlung von PHP zu. $data[0] hat NULL ergeben, das wird, weil damit gerechnet werden soll, in 0 umgewandelt und dann dein 1 addiert. ($x = $x + 1; kann man übrigens auch als $x++; schreiben.)
echo "$verabschiedung $name";