Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SESSION erstellt sich immer neu

Einklappen

Neue Werbung 2019

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

  • [Erledigt] SESSION erstellt sich immer neu

    Hallo!
    Bin neu hier

    Ich habe eine Datenbank mit Suchseite. Die Suchfelder werden optional gefüllt und dann der Button "Suche" gedrückt. Die Suchaktion verweist auf die "eigene" php-Seite, die Daten speichere ich dort und gebe sie testweise aus, ebenso wie die SID.

    Bei jedem Druck auf "suchen" habe ich dort eine neue SID und demnach auch keine gespeicherten Variablen mehr

    Inhalt meiner Seite (nur der php-Teil):
    <?PHP
    if (isset($_REQUEST['suchen'])) {
    if(!empty($_POST['suche_best'])) {
    $_SESSION['suchebest'] = $_POST['suche_best'];
    }

    echo SID. "<br></br>";
    echo $_SESSION['suchebest'];
    }
    ?>

    Wo könnte der (Denk-)Fehler liegen?


  • #2
    Jetzt reicht mir die Sch... bald hier.

    Beim Posten von Quellcode oder strukturierten Daten bitte bbCode verwenden ([php] für PHP, [html] für HTML, [code] für den Rest (Dumps, Queries..)) und Code geeignet einrücken.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Hallo und willkommen im Forum.
      Code bitte innerhalb von -Tags posten.

      Ist das der ganze Code? session_start() verwendet?
      Relax, you're doing fine.
      RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

      Kommentar


      • #4
        Hallo nikosch,

        es tut mir leid. ich hab noch nie in einem solchen Forum gepostet. Werde mich jetzt erst mal in die Konventionen einlesen. Bitte nicht weiter aufregen.

        Ja, das ist der ganze php-code, da ist nur noch html für die Input-Felder.

        Kommentar


        • #5
          So. Neuer Versuch.

          Hier mein (um die vorhin genannten) Zeilen ergänzter Code:

          PHP-Code:
          <?PHP
          session_start
          ();
          ini_set('display_errors',1); 
          error_reporting(-1);  

          if (isset(
          $_REQUEST['suchen'])) {
              if(!empty(
          $_POST['suche_best'])) {
                  
          $_SESSION['suchebest'] = $_POST['suche_best'];
                  }
          }

          echo 
          SID"<br></br>";
          echo 
          $_SESSION['suchebest'];

          ?>
          Im ersten Durchgang fülle ich das Feld "suchbest" mit z.B. "55". Ergebnis ist

          PHPSESSID=n18u646nrosor0of3jsoqp9m86

          55

          Danach lasse ich das suchfeld leer und drücke erneut "suche". Theoretisch sollte dann trotzdem noch die SESSION-Variable gespeichert sein. Ich erhalte aber:

          PHPSESSID=9n49pej401g30v15a920cke5q2

          Notice: Undefined index: suchebest in /mnt/webc/b3/75/54005975/htdocs/details.php on line 74

          Das bedeutet, dass die SESSION-Variable offenbar ein Problem hat.

          Kommentar


          • #6
            zur Livevorschau: http://koegoe.singles/details.php

            Kommentar


            • #7
              Erster Durchlauf:
              PHPSESSID=n18u646nrosor0of3jsoqp9m86

              Zweiter Durchlauf:
              PHPSESSID=9n49pej401g30v15a920cke5q2

              Das bedeutet, dass die SESSION-Variable offenbar ein Problem hat.
              Nö, es wird eine neue Session erstellt. Woran das liegt ist allerdings aus dem Codeschnipsel nicht ersichtlich.
              details.php on line 74
              Bei gezeigten 15 Zeilen Code...
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                [php]
                <html>
                <?PHP
                session_start();
                ini_set('display_errors',1);
                error_reporting(-1);
                ?>

                <head>
                <link rel="stylesheet" media="all" type="text/css" href="css/styles.css" />
                <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
                <title>koegoe Musikdatenbank</title>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                </head>

                <body>
                <header><div id="header"></div></header>
                <nav><div id="nav"></div></nav>
                <div id="suchen"></div>
                <div id="content"></div>
                <footer><div id="footer"></div></footer>

                <nav><div id="nav">
                <ul>
                <li><a href="index.php">Startseite</a></li>
                <li><a class="ausgewaehlt" href="details.php">Detailanzeige</a></li>
                <li><a href="auswertungen.php">Auswertungen</a></li>
                <li><a href="funktionen.php">Funktionen</a></li>
                <li><a href="erfassung.php">Daten erfassen</a></li>
                <li><a href="galerien.php">Galerien</a></li>
                <li><a href="ueberuns.php">über diese Seite</a></li>
                </ul>
                </nav>

                <div id="suchen">


                <form action="details.php" method="post">
                <button class="knopf1"><input type="image" name="suchen" value="Suche"></button>


                <fieldset>
                <legend>Suche</legend>
                <table>
                <tr>
                <td><label for="suche_best">Bestellnummer:</label></td>
                <td><input type="text" name="suche_best" placeholder="ohne * eingeben"></td>
                <td></td>
                </tr>
                <tr>
                <td><label for="suche_interpret">Interpret:</label></td>
                <td><input type="text" name="suche_interpret" placeholder="ohne * eingeben"></td>
                </tr>
                <tr>
                <td><label for="suche_titel">Titel:</label></td>
                <td><input type="text" name="suche_titel" placeholder="ohne * eingeben"></td>
                <td></td>
                </tr>

                </table>
                </fieldset>

                </form>
                </div>

                <div id="content">

                <?PHP
                if (isset($_REQUEST['suchen'])) {
                if(!empty($_POST['suche_best'])) {
                $_SESSION['suchebest'] = $_POST['suche_best'];
                }
                }
                echo SID. "<br></br>";
                echo $_SESSION['suchebest'];

                ?>




                </div>
                </body>
                </html>

                Kommentar


                • #9
                  Mist .Tags vergessen .

                  Kommentar


                  • #10
                    Foren-FAQ
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      PHP-Code:
                      <html>
                      <?PHP
                      session_start
                      ();
                      Und hier haben wir gleich das erste Problem... session_start() möchte ein Cookie setzen (per header Direktive). Kann es aber nicht, wenn bereits Ausgaben zum Browser geschickt wurden. Resultat: headers already sent.

                      Dummerweise wird das error_reporting erst danach hochgesetzt, wodurch die Meldung wahrscheinlich verschütt geht.
                      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                      Kommentar


                      • #12
                        Danke

                        Ich bin zutiefst dankbar, daß sich andere menschen mit meinem Problem beschäftigen. SEHR dankbar. Ich lerne auch gerne.

                        Lasst mich wissen, wenn ich zu viel Scherereien verursache. Die Anmeldung im Forum war schon Überwindung da ich weiß, wie grün ich bin. Das war wirkliche Ratlosigkeit.

                        Kommentar


                        • #13
                          Zitat von nikosch Beitrag anzeigen
                          Ich sehe diesen "Ändern"-Button nicht.

                          Kommentar


                          • #14
                            Ich habe das php-statement jetzt an den Anfang gesetzt.

                            PHP-Code:
                            <?PHP
                            session_start
                            ();
                            ini_set('display_errors',1); 
                            error_reporting(-1);  
                            ?>
                            <html>
                            Effekt: Ich erhalte keine session-ID.

                            Kommentar


                            • #15
                              Was ergibt var_dump(session_id()); oder var_dump($_SESSION);?
                              Relax, you're doing fine.
                              RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                              Kommentar

                              Lädt...
                              X