Geistiger Hohlraum: Problem mit Keksen

Beitrag lesen

Was funktioniert nicht, alles oder nur aus dem Unterverzeichnis heraus?

Nur aus dem Unterverzeichnis und umgekehrt.

Ja, wie nun? Falls Du meinst, dass ein im Unterverzeichnis gesetzter Cookie nicht im Hauptverzeichnis funktioniert, liegt es an der fehlenden/falschen Pfadangabe. Die muss / sein, soll der Cookie-Counter überall innerhalb der Domain funktionieren.

if(@$HTTP_COOKIE_VARS['counter'] <= time()-$sek)

Woher willst Du wissen, ob es einen Fehler gab, wenn Du mit @ die Fehlermeldungen unterdrückst? Fehlermeldungen sind eine Hilfe, beachte sie.

Wenn die Fehlermeldungen nicht unterdrückt werden, gibt es so und so beim ersten Aufruf der Seite eine Fehlermeldung!

Dafür gibt es isset():

if ((! isset($HTTP_COOKIE_VARS['counter'])) || ($HTTP_COOKIE_VARS['counter'] <= time()-$sek))

@ ist böse.

Ich hab's mal mit Pfadangabe probiert; dann zählt er ständig um 1 hoch!

Vielleicht gibst Du einfach mal bei jedem Seitenaufruf den Inhalt von $HTTP_COOKIE_VARS mit var_dump() aus, damit Du siehst, was da vom Browser ankommt.

Weiterhin solltest Du mittels der Warnungen Deines Browsers prüfen, ob überhaupt und wenn ja, wann Cookies gesendet werden.

Das habe ich schon versucht! Cookies werden auf jeden Fall gesetzt!

Das ist doch schonmal eine Aussage, dann muss es an dem Weg vom Browser zurück zum Server oder an der Verarbeitung der Cookie-Daten liegen.
Den alten Cookie löschst Du ja wohl hoffentlich zwischen den Änderungen am Skript.