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.