Ankündigung

Einklappen
Keine Ankündigung bisher.

$_SESSION-Variable wird von normaler $Variable überschrieben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • $_SESSION-Variable wird von normaler $Variable überschrieben

    Hallo Forum!

    In meinem Login-Script hatte ich kürzlich das Problem das nach dem Login auf den danach zugänglichen Seiten immer nach einer Seite auf einmal andere Benutzerinformationen vorhanden waren. Ich ging der Sache auf den Grund und fand heraus, dass meine $_SESSION['userid'] durch $userid auf einer anderen Seite überschrieben wurde. Beide verwenden die selbe includete Datei in der die Session gestartet wird. Ich vermute das das mit den register_globals zu tun hat, hab aber keine Ahnung wie ich das Problem lösen kann (außer die Variable umzubennen)

    Ich hoffe ihr könnt mr helfen!
    Danke

  • Zergling-new
    antwortet
    Und wenn du besagte Zeile auskommentierst gehts?

    Einen Kommentar schreiben:


  • Pain-maker
    antwortet
    // EDIT:
    Tut mir Leid, ich register_globals war doch nciht off! Ich wusste nicht das XAMPP nicht die php.ini aus dem Ordner PHP nutzt! Ich hab's jetzt in der richtigen php.ini ausgestellt und jetzt funktioniert alles!
    Danke für die Hilfe an Alle!

    Einen Kommentar schreiben:


  • Ricochet
    antwortet
    Dann rück doch endlich mal deinen code raus und zwar jede zeile in der die entsprechenden variablen vorkommen.

    die 2 zeilen da oben sind ein witz!


    Ausserdem kannst du dir selber mal an verschiedenen stellen im code $_SESSION['userid'] ausgeben lassen. Dann wirst du recht schnell die zeile finden wo du die variable überschreibst.

    Einen Kommentar schreiben:


  • Pain-maker
    antwortet
    Okay also auch wenn ich gemerkt hab das mir in der Sache wohl nciht so gern geholfen wird:
    Bei mir ist register_globals bereits "Off" aber das Problem existiert weiterhin!

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Das macht dein unlogisches Script. Gerüchteweise soll Debugging helfen...

    Einen Kommentar schreiben:


  • Pain-maker
    antwortet
    Nope!
    PHP-Code:
    <?php

    // login.php
    (...)
    if(
    md5($_POST['password']) == $query['1']) {
          
    $_SESSION['userid'] = $query['0'];
          
    // In meinem Fall hat die userid hier 1
    }
    (...)

    // members.php
    (...)
    $userid=$result[$i]['0'];
    // der letzte ausgelesene Wert (2) steht jetzt anstelle meiner $_SESSION['userid']
    (...)

    ?>
    Außerdem hab ich das schon ausgetestet! ich hab einfach mal so $userid=5 gemacht und siehe da: überschrieben!

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    wen du ihm code zeigst, und er kann dir nicht helfen, dann denke ich kann er dir ohne code erst recht nicht helfen. oder?

    Einen Kommentar schreiben:


  • JEGO
    antwortet
    mir braucht er auch nicht zu helfen, du möchtest Hilfe...

    Einen Kommentar schreiben:


  • Pain-maker
    antwortet
    Okay dann werd ich das wohl oder übel so machen müssen!
    Danke für die Hilfe!

    @JEGO:
    Mein Code würde dir bestimmt nicht weiterhelfen....

    Einen Kommentar schreiben:


  • Ricochet
    antwortet
    Zitat von Pain-maker
    @Ricochet: Doch wird sie! Wenn ich $userid umbennene wird $_SESSION['userid'] nicht überschrieben (wenn ich sie ausgebe über echo/print/var_dump,etc).
    Glaub ich nicht

    Ich vermute eher das du irgendwo, vermutlich unabsichtlich, die $_SESSION variable mit $userid füllst.

    Da du uns keinen Code zeigst rate ich einfach mal:

    if($_SESSION['userid'] = $userid)

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von Pain-maker
    @Saraneus: Ja ich weiß das würde's wohl beheben, aber mir wärs lieber, wenn ich das irgendwie umgehen könnte.
    Dann finde heraus, wo überschrieben wird. Dann erkennst du das Problem von selbst

    Einen Kommentar schreiben:


  • JEGO
    antwortet
    tja, da ich meine Glaskugel heute nicht bei mir habe, erkenne ich den Fehler in deinem Script so schwer....

    WEIL ICH ES HIER NIRGENS FINDE....

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Zitat von Pain-maker
    @Saraneus: Ja ich weiß das würde's wohl beheben, aber mir wärs lieber, wenn ich das irgendwie umgehen könnte.
    Außer register_globals ausschalten, gibt es keine Lösung außer die, aufzupassen, ob die Variable schon in der Session vorhanden ist.

    Einen Kommentar schreiben:


  • Pain-maker
    antwortet
    @Ricochet: Doch wird sie! Wenn ich $userid umbennene wird $_SESSION['userid'] nicht überschrieben (wenn ich sie ausgebe über echo/print/var_dump,etc).

    @Saraneus: Ja ich weiß das würde's wohl beheben, aber mir wärs lieber, wenn ich das irgendwie umgehen könnte.

    @JEGO: Wie genau willst du's denn? Was bringt's dir wenn ich dir poste was ich der Variable zuordne? Ich wollt nur wissen woran das liegen könnte oder wie ichs umgehen kann.

    Einen Kommentar schreiben:

Lädt...
X