Seltsames Problem mit session_regenerate_id

  • Hallo,

    ich habe ein seltsames Problem mit session_regenerate_id() ...

    ich definiere eine Session-ID, suche die Benutzerdaten damit, passt alles.

    Dann führe ich session_regenerate_id() aus, speichere dann die neue session_id in einer Variable, suche in der Datenbank nach der alten Session und ersetze sie durch die neue. Funktioniert alles ...

    Dann speichere ich die neue Session in dem Array "userdata" (ganz normal also mit $this->userdata['session_id'] = $new_sid;)

    Gebe ich das Array in einem var_dump aus funktioniert alles perfekt, neue Session da, alles super.

    Aber dann, wenn ich die neue Session in einem Logout Link einfüge, steht plötzlich irgendwas da ! Und ich habe keine Ahnung wieso ... ich habe jede Funktion gecheckt, alles überprüft, habe vor dem Link ein var_dump ausgegeben und dannach ... überall steht die Session richtig da nur in dem einen Link nicht und ich verstehe beim besten Willen nicht wieso.

    Hat da jemand ne Idee ? Weil es KANN nur mit session_regenerate_id() selbst zu tun haben, anders kann ich mir das nicht erklären.

    Lg
    Matze

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Meine Glaskugel sagt: Du hast irgendwas übersehen oder nicht beachtet.

    session_regenerate_id macht bei dir genau das gleiche wie bei jedem anderen auch. Und auch das Verhalten von Variablen ist bei dir nicht anders als bei anderen. Also solange du keinen Code zeigst kann man dir auch nicht sagen wo dein Fehler liegt.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Schon klar, aber der Code setzt sich aus sehr vielen verschiedenen Classes und Funktionen zusammen, da müsste ich einige 1000 Zeilen Code schicken ... gut, ich hab alles angeschaut, ich hatte eher gehofft, dass mir wer sagt, dass session_regenerate_id einen Bug hat (vom dem ich auch nicht genau wüsste, wie der aussieht, weil einerseits gehts und andererseits nicht ...) naja, wie auch immer dann lass ich das halt bleiben ^^

    Danke trotzdem

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Zitat von Teron Gerofied


    steht plötzlich irgendwas da !


    Aha, und was? Vielleicht die alte Session-ID, eine Fehlermeldung oder zufälliges zeug ala str_shuffle(implode("", range("a", "z")));

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!