Probl. mit Session

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

  • Probl. mit Session

    Hallo!
    Ich weiss nicht mehr weiter....

    Ich fülle Sessions mit Werten und will sie später ausgeben:
    PHP-Code:
    ...
    $sql="SELECT ....
    $result=mysql_query($sql);
    while(
    $row = mysql_fetch_assoc($result))       
    {
    session_start(); 
    #Kennwort u. Benutzername kommen über ein Formular
    $_SESSION["MeinKennwort"] = "$MeinKennwort";
    $_SESSION["MeinBenutzername"] = "$MeinBenutzername";

    $MeineID=$row['ID'];
    $_SESSION["MeineID"] = $MeineID;
                        
    $MeinLevel=$row['Level'];
    $_SESSION["MeinLevel"] = $MeinLevel;
    }
    .... 
    PHP-Code:
    session_start(); 

    # und jetzt die Ausgabe auf der nächsten Seite

    #geht nicht..., keine Werte
    echo "<small>Ihr Level = " $_SESSION["MeinLevel"];
    echo 
    "<br><small>Ihre ID = " $_SESSION["MeineID"];

    #Werte werden korrekt dargestellt
    echo "<br><small>Benutzer = " $_SESSION["MeinBenutzername"];
    echo 
    "<br><small>Kennwort = " $_SESSION["MeinKennwort"]; 
    Was mach ich falsch?? Die Level & ID-Werte werden nicht ausgegeben, auch keine Fehler etc; der User- und Kennwort wird korrekt ausgegeben.

    Vielen Dank für einen Tipp

  • #2
    Dort wo du die Werte in die Session schreibst solltest du vorher auch session_start() aufrufen.

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      Dort wo du die Werte in die Session schreibst solltest du vorher auch session_start() aufrufen.
      Das mach ich doch...
      PHP-Code:
      while($row mysql_fetch_assoc($result))       
      {
      session_start(); #HIER startet die Session
      #Kennwort u. Benutzername kommen über ein Formular
      $_SESSION["MeinKennwort"] = "$MeinKennwort";
      $_SESSION["MeinBenutzername"] = "$MeinBenutzername";

      $MeineID=$row['ID'];
      $_SESSION["MeineID"] = $MeineID;
                          
      $MeinLevel=$row['Level'];
      $_SESSION["MeinLevel"] = $MeinLevel;

      Kommentar


      • #4
        Hallo!

        Also so weit ich weis ist das session_start() dort an der falschen Stelle denn vor session_start() darf kein Code ja noch nicht mal ein Leerzeichen stehen! Du müsstest das ganz am Anfang in der Datei schreiben vor jeglichen Code!
        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
        http://www.lit-web.de

        Kommentar


        • #5
          Original geschrieben von litterauspirna
          Hallo!

          Also so weit ich weis ist das session_start() dort an der falschen Stelle denn vor session_start() darf kein Code ja noch nicht mal ein Leerzeichen stehen! Du müsstest das ganz am Anfang in der Datei schreiben vor jeglichen Code!
          Wer hat dir denn bitte so einen Käse erzählt?
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            Entschuldigung du hast natürlich recht ich habe das in Verbindung mit Cookies basierender session verwechselt. Man vergebe mir!
            Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
            http://www.lit-web.de

            Kommentar


            • #7
              Original geschrieben von litterauspirna
              Entschuldigung du hast natürlich recht ich habe das in Verbindung mit Cookies basierender session verwechselt.
              naja, session-cookies stellen ja eher den normalfall dar, insofern hast du schon etwas verwechselt.
              vor den http-headern, und dazu zählen unter anderem session-cookies, darf lediglich kein html an den browser gesendet werden. php-code ohne ausgabe kann dagegen davorstehen.

              @webdream
              warum setzt du innerhalb der while-schleife immer dieselben session-werte, vom session_start() mal abgesehen?
              und woher kommen eigentlich $MeinKennwort und $MeinBenutzername?

              Kommentar


              • #8
                @litterauspirna: Und auch das ist Quatsch. session_start() muß lediglich vor der ersten Ausgabe stehen.

                Die Art wie du, lieber TO es benutzt ist allerdings wirklich etwas ungeschickt. Einerseits kann es sein, dass die While-Schleife nicht betreten wird. Dann wird keine Session gestartet und auch nichts reingeschrieben.
                Andererseits kann es mehrere Schleifendurchläufe geben. Soll die Session dann immer wieder gestartet werden? Wohl kaum. Wird sie auch nicht. Alle Aufrufe außer dem ersten werden ignoriert. Bei aufgedrehtem Error Reporting hättest du die entsprechenden Notices bemerkt.

                Prüfe wie oft die Schleife durchlaufen wird und was $row enthält.

                Schalte bitte auch register_globals aus, falls es das noch nicht ist, und gewöhne dir $x = "$var"; ab, wenn du $x = $var; meinst.

                Kommentar

                Lädt...
                X