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

  • #2
    Zeig uns doch mal das besagte Stück Code.
    Ich gehe nicht davon aus, dass $_SESSION überschrieben wird.
    Tabellenlayouts sind out, Browsergames sind schei$$e und die Erde ist eine Scheibe.

    Kommentar


    • #3
      Schalte register_globals in der php.ini oder per .htaccess (?) aus, wenn es dein Projekt erlaubt. In PHP6 wird es keine globals mehr geben.

      Kommentar


      • #4
        welche Antwort möchtest du Hören???

        in Zeile 57 hast du eine falsche zuweisung gemacht.
        deswegen geht das nicht....

        wie solln wir dir da helfen?
        Gruß JEGO ;-)

        Ein PHP Script tut, was Du schreibst, nicht was Du willst.

        Kommentar


        • #5
          @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.

          Kommentar


          • #6
            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.

            Kommentar


            • #7
              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....
              Gruß JEGO ;-)

              Ein PHP Script tut, was Du schreibst, nicht was Du willst.

              Kommentar


              • #8
                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

                Kommentar


                • #9
                  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)
                  Tabellenlayouts sind out, Browsergames sind schei$$e und die Erde ist eine Scheibe.

                  Kommentar


                  • #10
                    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....

                    Kommentar


                    • #11
                      mir braucht er auch nicht zu helfen, du möchtest Hilfe...
                      Gruß JEGO ;-)

                      Ein PHP Script tut, was Du schreibst, nicht was Du willst.

                      Kommentar


                      • #12
                        wen du ihm code zeigst, und er kann dir nicht helfen, dann denke ich kann er dir ohne code erst recht nicht helfen. oder?
                        :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                        Kommentar


                        • #13
                          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!

                          Kommentar


                          • #14
                            Das macht dein unlogisches Script. Gerüchteweise soll Debugging helfen...

                            Kommentar


                            • #15
                              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!

                              Kommentar

                              Lädt...
                              X