Session Variable überschreiben

Hallo,

ich bin gestern auf ein seltsames Phänomen gestoßen. Ich setze beim ersten Aufruf zwei Session-Variablen. Jetzt loggt sich der Nutzer ein und da ich ungerne jedes Mal zur Datenbank rennen will, um den Namen eines Nutzers zu holen, wollte ich den Namen “Guest” mit “Benutzername” überschreiben.
Steige ich direkt vor der Zuweisung mit return aus, wird die Seite geladen. Will ich direkt danach aussteigen, rennt irgendetwas in eine Endlosschleife, da die CPU auf 100% hochdreht.

public function loginWorks() { // do login // ... $stmt->bind_param($username); // ... return ; $_SESSION['username'] = $username; // ... } public function loginWorksNot() { // do login // ... $stmt->bind_param($username); // ... $_SESSION['username'] = $username; return ; // ... }
Zur Information: Die Variable wird nur einmal innerhalb eines escapeHTML() ausgegeben und sonst nie verwendet! Es gibt kein while (isset($_SESSION[‘username’])) { rand(); }

Hat jmd. eine Idee, warum eine initialisierte Session-Variable nicht erneut geschrieben werden kann. Evtl. hat es mit dem php-Update, was ich vor Kurzem gemacht habe zu tun?
Session_regenerate() auskommentieren, ein Session_unset zuvor, etc etc. bringt nichts!

Es könnte ja sein, dass mit dem Update Session-Variablen geschützt werden, aber dann darf die CPU nicht unter Vollast laufen, bis der Timeout von php fliegt. Vorrübergehend werde ich meine eigene Session bauen (file / db), die ich dann über die Id lesen kann, auch wenn das wahnsinnig ausbremst.

Der Code den du dort hast reproduziert das Problem nicht. Du musst schon ein bisschen mehr zeigen, damit man sehen kann, woran es liegen könnte. :slight_smile:

Mein Fehler:
Gefunden habe ich ihn, indem ich die max_execution_time auf 2 Sekunden gestellt habe, sodass das Skript nach 20 Sekunden immer in einem Bereich abgebrochen wurde. Es war bei der Rollenauflösung über die Userid. Lt. top hat auch der mysql-Daemon hochgedreht, sodass der Fehler dann klar war.

Seit APC beim Laden undefinierter Klassen mit dem spl-Autoloader (in dem Fall habe ich eine Exception geschmissen, auch gefangen wird) mit einem Segfault aussteigt, bin ich auch skeptisch, was Zend anbelangt.