Ankündigung

Einklappen
Keine Ankündigung bisher.

Session-Variable geht verloren?

Einklappen

Neue Werbung 2019

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

  • Session-Variable geht verloren?

    Hallo,

    habe hier ein echt merkwürdiges Problem. Ich nutze eine Session-Variable ($_SESSION['typ']), um eine Typenbezeichung zu speichern. Dies passiert, wenn per Post eine entsprechender Wert übergeben wird:

    PHP-Code:
        if ($_POST['typ']!='') {
            
    $_SESSION['typ'] = $_POST['typ'];
        } 
    Nur wenige Zeilen tiefer, in denen nichts mit Session-Variablen gemacht wird (nur Datenbankabfragen) ist die Variable plötzlich leer.

    Woran kann das liegen?


  • #2
    PHP-Code:
    <?php
    sessionstart
    () 
    ?>
    gesetzt??

    ein bisel mehr code...wir sind doch keine hellesher !!!

    thx stego87 :wink:

    Kommentar


    • #3
      Ich habs schon fast befürchtet

      PHP-Code:
          $typ_query xtc_db_query("SELECT staubsaugertyp 
                                     FROM " 
      TABLE_SSB_NUMBERS 
                                     WHERE hersteller ='" 
      $_SESSION['hersteller_id'] . "' ORDER BY staubsaugertyp");

          
      $auswahl = array();
          
      $auswahl[0] = array('id' => '0''text' => ' -- bitte wählen -- ');
          
      $num 1;

          while (
      $typ xtc_db_fetch_array($typ_query)) {
              
      $auswahl[$num] = array('id' => $typ['staubsaugertyp'],
                                 
      'text' => $typ['staubsaugertyp']);
              
      $num++;
          }

          if (
      $_POST['typ']!='') {
              
      $_SESSION['typ'] = $_POST['typ'];
          }

          
      $ssb_query xtc_db_query("SELECT beutelartikelnummer FROM " TABLE_SSB_NUMBERS " WHERE staubsaugertyp='".$_SESSION['typ']."'");
          
      $ssb_result xtc_db_fetch_array($ssb_query); 
      Stammt aus einem großen Ecommerce-Sytem und da wird die Session normalerweise ordentlich verwaltet, die hundert anderen Session-Werte bleiben auch erhalten, nur meiner geht verloren...

      Kommentar


      • #4
        PHP-Code:
        <?php
         
        if ($_POST['typ']!='') { 
                
        $_SESSION['typ'] = $_POST['typ']; 
                echo 
        'test session:'.$_SESSION['typ'];
          } 
        ?>
        was kommt da heraus?

        Kommentar


        • #5
          Da ist sie noch gesetzt. Mache ich das nach der letzten SQL-Abfrage, die den Wert ja braucht, ist sie leer. Sie ist aber auch vorher schon leer, da die SQL-Abfrage nicht ausgeführt wird (daher ist es ja aufgefallen). Das irritierende ist, das es auf meinem Server läuft, auf dem Produktivserver nicht. Beide Debian Sarge mit PHP 4.3.10

          Kommentar


          • #6
            Auch beide gleich konfiguriert, insbesondere register_globals?

            Kommentar


            • #7
              @Bruchpilot
              darüber habe ich zuerst auch nachgedacht, kann aber net sein wenn die anderen sessions funktionieren!

              mh...ka...sry

              Kommentar


              • #8
                Seiteneffekte bei register_globals on können auch im Sessionmodul bemerkbar sein.

                Kommentar


                • #9
                  Hi.

                  Bei register_globals = on referenzieren $typ und $_SESSION['typ'] auf den
                  selben Wert. Von daher veränderst du $_SESSION['typ'], wenn du $typ
                  veränderst. Das ist doch das Problem von dieser besch* Option. Falls du die
                  also nicht abschalten willst, dann am besten deine ganze Applikation in eine
                  Funktion main() setzen, dann läuft die auch auf Servern mit register_globals
                  on.

                  Basti

                  PS:
                  Dein if($_POST['typ'] != '') lässt vermuten, dass dein
                  Error-Reporting-Level so eingestellt ist, dass NOTICEs nicht ausgegeben
                  werden. Ändere das mal und dann schreib if (!empty($_POST['typ']).

                  Kommentar


                  • #10
                    Hast recht, hab den Beitrag von Basti grad erst gesehen, bin aber eben auch drauf gekommen, das bei on $typ und $_SESSION['typ'] das gleiche sind. Mein Server hier dagegen ist auf off. Dachte immer, 4.3 wäre default off...

                    Dank für den Tip mit !empty

                    Kommentar


                    • #11
                      Zitat von Anotherone
                      bin aber eben auch drauf gekommen, das bei on $typ und $_SESSION['typ'] das gleiche sind.
                      ...nbis auf den Gültigkeitsbereich halt.

                      Dachte immer, 4.3 wäre default off...
                      Dem ist auch so. Seit 4.2. Musst du also wohl selbst mal umgelegt haben.

                      Basti

                      Kommentar

                      Lädt...
                      X