Variables INCLUDE

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

  • Variables INCLUDE

    Hallo,

    ich habe folgendes Problem: auf einer Seite will ich ein paar Formulare includen. Die Formulare sehen wie folgt aus:

    form1.php
    PHP-Code:
    <?php
    session_start
    ();
    if (
    $_POST["weiter"] == "Weiter") {
        
    $gueltige_eingabe true;
        if (
    $_POST["vorname"] == "") {
            echo 
    "Bitte Ihren Vornamen eingeben. <br>";
            
    $gueltige_eingabe false;
        }
        if ((
    $_POST["nachname"]) == "") {
            echo 
    "Bitte Ihren Nachnamen eingeben. <br>";
            
    $gueltige_eingabe false;
        }
        if (
    $gueltige_eingabe == true) {
            
    $_SESSION["vorname"] = $_POST["vorname"];
            
    $_SESSION["nachname"] = $_POST["nachname"];
            
    header("Location: index.php?action=form2");
        }
    }
    ?>

    <html>
    <head></head>
    <body>
    <form action="<?php print $_SERVER["PHP_SELF"]; ?>" method="post">
    Vorname: <br><input type="text" name="vorname" value="<?php print htmlspecialchars($_REQUEST["vorname"]);?>"><br>
    Nachname: <br><input type="text" name="nachname" value="<?php print htmlspecialchars($_REQUEST["nachname"]);?>"><br>
    <br><br> <input type="submit" name="weiter" value="Weiter" >
    </form>
    </body>
    </html>
    form2.php
    PHP-Code:
    <?php
    session_start
    ();
    if (
    $_POST["weiter"] == "Weiter") {
        
    $gueltige_eingabe true;
        if (
    $_POST["strasse"] == "") {
            echo 
    "Bitte die Strasse eingeben. <br>";
            
    $gueltige_eingabe false;
        }
        if ((
    $_POST["hausnr"]) == "") {
            echo 
    "Bitte die Hausnummer eingeben. <br>";
            
    $gueltige_eingabe false;
        }
        if (
    $gueltige_eingabe == true) {
            
    $_SESSION["strasse"] = $_POST["strasse"];
            
    $_SESSION["hausnr"] = $_POST["hausnr"];
            
    header("Location: index.php?action=form3");
        }
    }
    ?>

    <html>
    <head></head>
    <body>
    <form action="<?php print $_SERVER["PHP_SELF"]; ?>" method="post">
    Strasse: <br><input type="text" name="strasse" value="<?php print htmlspecialchars($_REQUEST["strasse"]);?>"><br>
    Haus-Nr.: <br><input type="text" name="hausnr" value="<?php print htmlspecialchars($_REQUEST["hausnr"]);?>"><br>
    <br><br> <input type="submit" name="weiter" value="Weiter" >
    </form>
    </body>
    </html>
    form3.php
    PHP-Code:
    <?php
    session_start
    ();
    if (
    $_POST["weiter"] == "Weiter") {
        
    $gueltige_eingabe true;
        if (
    $_POST["plz"] == "") {
            echo 
    "Bitte die Postleitzahl eingeben. <br>";
            
    $gueltige_eingabe false;
        }
        if ((
    $_POST["ort"]) == "") {
            echo 
    "Bitte den Ort eingeben. <br>";
            
    $gueltige_eingabe false;
        }
        if (
    $gueltige_eingabe == true) {
            
    $_SESSION["plz"] = $_POST["plz"];
            
    $_SESSION["ort"] = $_POST["ort"];
            
    header("Location: index.php?action=ausgabe");
        }
    }
    ?>

    <html>
    <head></head>
    <body>
    <form action="<?php print $_SERVER["PHP_SELF"]; ?>" method="post">
    PLZ: <br><input type="text" name="plz" value="<?php print htmlspecialchars($_REQUEST["plz"]);?>"><br>
    Ort: <br><input type="text" name="ort" value="<?php print htmlspecialchars($_REQUEST["ort"]);?>"><br>
    <br><br> <input type="submit" name="weiter" value="Weiter" >
    </form>
    </body>
    </html>
    ausgabe.php
    PHP-Code:
    <?php
    session_start
    ();
    echo 
    $_SESSION["vorname"] . " " $_SESSION["nachname"] . "<br>";
    echo 
    $_SESSION["strasse"] . " " $_SESSION["hausnr"] . "<br>";
    echo 
    $_SESSION["plz"] . " " $_SESSION["ort"] . "<br>";
    ?>
    Soweit funktionieren die Formulare sehr gut. Die Datei index.php - auf der auch die Navigation für die Webseite ist - beinhaltet auch den INCLUDE - Part. Nachdem ich mir dies http://www.peterkropff.de/site/tutorials/php_mysql_bsp/register_globals.htm durchgelesen habe, habe ich angefangen den INCLUDE_Teil zu schreiben, der wie folgt aussieht:
    PHP-Code:
    <?php
    if ($_GET["action"] == "form2") {
        
    $seite "form2.php";
    } else if (
    $_GET["action"] == "form3") {
        
    $seite "form3.php";
    } else if (
    $_GET["action"] == "ausgabe") {
        
    $seite "ausgabe.php";
    } else {
        
    $seite "form1.php";
    }

    include 
    $seite
    ?>
    Das erste Formular wird angezeigt, wenn man auf "Weiter" anklickt, kommt mann auch auf die zweite Seite des Formulars. Dannach ist aber Feierabend. Mann kommt weder auf das dritte Formular noch auf die Ausgabeseite - sondern wird zum ersten Formular umgeleitet. Auch inder URL wird nicht angezeigt "index.php?action=form3". Wieso? Kann mir jemand bei der Lösung des Problems behilflich sein?

  • #2
    PHP-Code:
    <?php print $_SERVER["PHP_SELF"]; ?>
    weil du nirgendwo den entsprechenden get-parameter mit durchschleifts:
    PHP-Code:
    <?php echo $_SERVER["PHP_SELF"].'?action=form3'?>
    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Da sind doch überall
      PHP-Code:
      header("Location: index.php?action=form2"); 
      .
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar


      • #4
        das ist tinnef, da die formulardaten nicht! mit übergeben werden. bau den get-parameter in die <form action...>. oder noch besser, mach dich mal schlau, was ein affenformular ist, da kannst du den ganzen rotz in einer! datei abarbeiten.

        EDIT:
        hab die session übersehen, ist aber trotzdem tinnef.


        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Müsste der GET-Parameter nicht in die header() rein?

          Kommentar


          • #6
            sieht auch nicht so aus, als ob du error_reporting "angeschaltet" hast...

            Kommentar


            • #7
              ich versteh den sinn deines aufbaus nicht so ganz...
              wenn du willst, dass wenn die eingaben korrekt sind die per POST auf die nächste Seite weitergegeben werden wenn du mit header weiterleitest, hast du etwas missverstanden.

              flogender aufbau wäre sinnvoll:
              form1 includen => schicke daten zu der datei mit action=form2
              form2 includen => wenn eingabe = falsch, gehe zu form 1, ansonsten formular für die neue daten die zur datei mit action=form3 geschickt werden
              form3 includen => überprüfen, ggf zurück zu form2, ansonsten letztes formular das die daten an die datei mit action=ausgabe schicktt
              ausgabe => überprüfen, ggf zurück zu form 3, ansonsten ausgeben
              Du kannst jeden Tag wie deinen letzten leben, du musst nur jeden Tag das Gleiche tun.

              Denk' mal drüber nach!

              Kommentar

              Lädt...
              X