Session Variablen werden gelöscht

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

  • Session Variablen werden gelöscht

    Hallo, Community,

    Ich stehe vor einem Problem, das ich oder meine Kollegen nicht lösen können.

    Mein Problem trat sowohl mit dem Xampp 1.4.6 und mit der neusten1.4.15 Version auf. Ich habe noch die normalen PHP-Standardeinstellungen benutzt, mit denen ich noch nie probleme mit sessions hatte

    Ich habe in beiden Browsern, Internet Explorer und Mozilla Firefox die Cookies aktiviert, aber trotzdem [COLOR=red]wurden meine Sessionvariablen geleert![/COLOR]

    per post-link übergibt mein shopscript 2 Werte (Menge und Artikel_ID) an sich selbst, und speichert diese dann in den Session Variablen (Warenkorb). Wenn ich dann aber auf einen "get-link" klicke, um die Kategorie zu ändern, werden die Session Variablen geleert. Das sehe ich daran das der Warenkorb plötzlich nicht mehr angezeigt wird:

    PHP-Code:
    if(count($_SESSION)) Warenkorb anzeigen... ; 
    Woran könnte es noch liegen das die SESSION geleert wird?
    Beendet wird sie übrigens nicht, die Session ID bleibt bei jedem Aufruf dieselbe.
    .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
    Zwischen Wahnsinn und Verstand
    .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
    liegt oft nur eine dünne Wand

  • #2
    Zeig doch mal deinen Code her der die Kategorie ändert. Vielleicht ist da ja nen Fehler drin der dir alle Variablen überschreibt?

    Kommentar


    • #3
      Es gibt nur eine Stelle, an der die Session-Variablen beschrieben werden.
      Und diese werden dann wieder gelöscht, wenn ich die seite neu lade:
      PHP-Code:
      session_start();
      include 
      "connect.php";
      mysql_select_db("shop");
      $Daten mysql_query("select * from buecher");
      $Modus $_GET["modus"];
      $Kategorie $_GET["kategorie"];
      $Artikel $_GET["Artikel"];
      if(!
      $Modus$Modus "Kategorie";
      //Warenkorb füllen

      if($_POST["Bestellung"]){
          
      $Datasets count($_SESSION);
          
      $_SESSION[$Datasets] = $_POST["Bestellung"];
          
      $_SESSION[$Datasets+1] = $_POST["Artikel"];

      Wenn nichts über $_POST["Bestellung"] übergeben wird, verschwindet der Warenkorb wieder.
      Zuletzt geändert von Volti-115; 29.09.2005, 10:07.
      .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
      Zwischen Wahnsinn und Verstand
      .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
      liegt oft nur eine dünne Wand

      Kommentar


      • #4
        Da wird die

        PHP-Code:

        $_SESSION 
        doch überhaupt nicht bearbeitet

        Akzeptierst du Cookies? Machst du auf jeder Seite eine session_start?

        Kommentar


        • #5
          bitte lesen und post editieren!

          http://www.php-resource.de/forum/sho...threadid=50454

          Kommentar


          • #6
            Also, ich kenne das Script (bin sein Kollege).

            Die Ware wird in seinem Shopsystem in den Warenkorb gelegt, jedoch werden bei Anklicken eines Links die Session-Variablen gelöscht...


            @Volti: poste doch mal den Teil des Codes, in dem die Session-Variablen erstellt und gefüllt werden.


            PS: session_start() wird auf jeden Fall benutzt, da das Script sich größtenteils auf einer Seite befindet...

            Kommentar


            • #7
              Original geschrieben von Schnoop
              Da wird die

              PHP-Code:

              $_SESSION 
              doch überhaupt nicht bearbeitet

              Akzeptierst du Cookies? Machst du auf jeder Seite eine session_start?
              Ich hab den Post jetzt sinnvoll geändert, und wie schon zuvor gesagt, cookies werden akzeptiert.
              Ich habe nur eine Seite für das Script, und da wird die Session jedesmal gestartet.
              Kann es vielleicht sein, das ich in der include-datei auch die session starten muss?
              .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
              Zwischen Wahnsinn und Verstand
              .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
              liegt oft nur eine dünne Wand

              Kommentar


              • #8
                Kann es vielleicht sein, das ich in der include-datei auch die session starten muss?
                Wenn du die Session zweimal startest kriegst du für den zweiten session_start() einen Fehler.
                Du startest erst die Session und bindest dann die Datei ein. Das ist schon gut so. Der Fehler muss woanders liegen.
                Wenn nichts über $_POST["Bestellung"] übergeben wird, verschwindet der Warenkorb wieder.
                Du setzt die Session Werte ja erst auch wenn etwas übergeben wurde, sprich das Form abgeschickt wurde. Wenn also das Form nix ausgefüllt, welche Werte sollen dann eingetragen werden.

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9

                  Du setzt die Session Werte ja erst auch wenn etwas übergeben wurde, sprich das Form abgeschickt wurde. Wenn also das Form nix ausgefüllt, welche Werte sollen dann eingetragen werden.
                  Also, einmalig sind schon Werte in der Session Variablen und der Warenkorb wird angezeigt.
                  Aber in dem Script kommt nirgendwo ein [COLOR=blue]unset()[/COLOR] oder so vor, das mir erklären könnte warum das PHP die Variablen nicht an den nächsten Seitenaufruf übergibt

                  also, wenn ich [COLOR=blue]error_reporting(E_ALL)[/COLOR] benutze, dann sagt mir das php halt nur, das manchmal nix für die get's und post's übergeben wird, aber das war mir schon vorher klar.
                  Zuletzt geändert von Volti-115; 29.09.2005, 10:30.
                  .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
                  Zwischen Wahnsinn und Verstand
                  .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
                  liegt oft nur eine dünne Wand

                  Kommentar


                  • #10
                    Was ist Bestellung denn für ein Feld? Kann es denn sein das wenn du ein leeres Formular absendest er die Session dann mit den leeren Feldern überschreibt?

                    Kommentar


                    • #11
                      Nein, Bestellung ist nicht leer. Darin wird die Anzahl der zu bestellenden Artikel gespeichert, und das gibt der Warenkorb auch aus, wenn er sich die mühe macht mal für kurze zeit zu erscheinen.
                      Ich hab auch schon mit [COLOR=blue]echo "count($_SESSION)"[/COLOR] an verschiedenen Stellen des Programms auasgeben lassen ob die Variablen noch da sind.
                      Das wurde dann immer auf Null zurückgesetzt.

                      Sobald man etwas dem Warenkorb hinzufügt, sind sie im nächsten Durchlauf da, beim erneuten Neuladen der Seite allerdings nicht mehr.
                      Muss ich vielleicht irgendwelche Standardeinstellungen von meinem PHP ändern, danit die Variablen mit der ID zusammen
                      übergeben werden?
                      Zuletzt geändert von Volti-115; 29.09.2005, 10:41.
                      .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
                      Zwischen Wahnsinn und Verstand
                      .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
                      liegt oft nur eine dünne Wand

                      Kommentar


                      • #12
                        H3h3, hab das Problem gelöst, ka wie genau, aber jetzt klappt alles.
                        Es lag wohl irgendwie an der Darstellung des Warenkorbs....
                        Ich hab die verändert, und in die Indizierung des Session-Arrays noch Zeichenketten mit eingebaut, und hopps: jetz funzt's
                        Trotzdem noch schönen Dank an alle die sich die Mühe gemacht haben und mir helfen wollten.
                        .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
                        Zwischen Wahnsinn und Verstand
                        .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
                        liegt oft nur eine dünne Wand

                        Kommentar

                        Lädt...
                        X