Formular-Probleme beim Speichern von Sessionvariablen in eine DB

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

  • Formular-Probleme beim Speichern von Sessionvariablen in eine DB

    Hallo!
    Ich versuche ein mehrseitiges Formular zu erstellen. Die Struktur sieht vereinfacht so aus:

    //Hier ist eine Art Session_Manager enthalten
    <?php
    include("./session_dbsessX.php");
    ?>

    //Hier kommt das Formular
    <form id="form1" name="form1" method="post">
    ...
    </form>


    <?php
    DB_connect

    /*Auslesen des Textfeldes "anrede" beim Drücken des Submit buttons */
    $anrede = $_POST['anrede'];

    /*schreiben des Textfeldinhaltes in die Sessionvariable*/
    $_SESSION['anrede'] = $anrede;
    ?>


    Das ganze klappt auch wunderbar, solange ich auf der Formularseite bleibe. Es wird alles Ordnungsgemäß in der DB abgelegt. Aber es soll ja eben ein mehrseitiges Formular werden. Wenn ich aber bei <form action="form2.php"> setze, um nach dem drücken auf das zweite Formular zu gelangen, so wird nichts in der DB abgelegt. Lediglich die Session, aber nur Leere Session-Variablen. Irgendwie funktioniert das Statement $_POST['anrede'] nicht, wenn man mit action auf eine zweite Seite verweist. Dort wird scheinbar dann nichts ausgelesen. Ersetzte ich es durch einen String, funktioniert's....
    Hätte jemand eine Idee?!

  • #2
    Prinzipiell funktionierts ja ungefähr so, wobei sich natürlich auch alles in einem Script abspielen kann:
    Code:
    <form action="form1.php" method="post">
    <input type="text" name="input1" value="1">
    </form>
    PHP-Code:
    <?php  // form1.php
    session_start();
    $_SESSION[] = $_POST['input1'];
    ?>
    <form action="form2.php" method="post">
    <input type="text" name="input2" value="2">
    </form>
    PHP-Code:
    <?php // form2.php
    session_start();
    $_SESSION[] = $_POST['input2'];
    ?>
    <form action="form3.php" method="post">
    <input type="text" name="input3" value="3">
    </form>
    PHP-Code:
    <?php // form3.php
    session_start();
    $_SESSION[] = $_POST['input3'];

    var_dump($_SESSION);
    ?>
    Verwendest du einen selbstgestrickten Sessionhandler?

    Wozu machst du den DB-Connect? Speicherst du die Zwischenwerte in der Session und der DB?
    Zuletzt geändert von onemorenerd; 11.05.2006, 18:28.

    Kommentar


    • #3
      Danke erstmal!
      Nutze die DB um die Session darin zu speichern ansttat im Filesystem des Servers...
      So, nun mal gucken, was du an Code gepostet hast :-)

      Kommentar


      • #4
        Aber wie kann ich denn in deinen obigen Beispielen beispielsweise in Form2 auf den Inhalt des Textfeldes der ja in der Session sein sollte zugreifen? Bei mir klappt es nicht. Ist immer Null.

        Kommentar


        • #5
          Dann ist dein Sessionhandler Murks oder einfach nicht als solcher registriert. Mehr kann man mit so wenig Infos nicht sagen.

          Kommentar


          • #6
            So, hab das Problem gelöst. Ich schreibe die Daten, die ich in Formular1 eingebe nicht direkt in die Session und speicher sie in der DB ab. Dies ist ja wie beschrieben nicht möglich. Vielmehr hat man, sobald bei "action" ein Zielformular, hier Formular2 eingetragen ist, scheinbar keine möglichkeit mehr in Formular auf die Einträge in den Textfeldern in Formular1 zuzugreifen. Diese werden scheinbar exklusiv an Formular2 übertragen.
            Lösung: ich empfange sie einfach in Formular2 und schreibe Sie in die Session und damit in die DB. Also einfach die Zeilen

            <?php
            $anrede = $_POST['anrede'];
            $_SESSION['anrede'] = $anrede;
            ?>

            in Formular2 und fertich :-)

            Kommentar

            Lädt...
            X