[SOLVED]: header(Location: ...) mit unerwartetem Ergebnis

Beitrag lesen

Problem gelöst: die Überprüfung der IP-Adresse erfolgte bei mir mit einem UPDATE, da ich bei Erfolg gleichzeitig den Zeitpunkt der letzten Nutzeraktivität speichere.

Folgendes Vorgehen erwies sich nun als fehlerhaft:

  • Die letzte Nutzeraktivität wird beim Login auf NOW() gesetzt.
  • Beim Überprüfen der IP nach dem Seitenaufruf ebenfalls wieder auf NOW().
  • Anhand der affected rows weiß ich dann, ob der Nutzer angemeldet ist.

Allerdings ist der MySQL Server so schnell, dass NOW() in beiden Fällen exakt den selben Timestamp lieferte und somit das UPDATE keinen Effekt hatte und affected rows auf 0 gesetzt wurde!

Das erklärt auch, warum der sleep(1) Befehl funktionierte -> er führte lediglich dazu, dass das 2. NOW() mindestens eine Sekunde zeitversetzt war. Das habe ich jetzt direkt in das SQL Statement über NOW() + 1 eingebaut -> Problem gelöst :-)

Dennoch herzlichen Dank für eure Mithilfe beim Eingrenzen des Problems! Sonst wäre ich nie hierauf gestoßen!

Viele Grüße
Mueller