"Method Post" - Problem!

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

  • "Method Post" - Problem!

    Hallo,

    ich hätte da eine Frage. Ich will ein kleines Script ändern.

    Wenn jemand seine eMail Adresse einträgt soll er auf eine andere Seite geleitet werden wo er was downloaden kann.

    z.Z. ist das Script so:

    <form action="http://www.die-script-adresse.xy" method="post">

    Kann man es irgendwie ändern das die Mail adresse zwar zu der einen Seite übertragen wird aber dann gleich auf eine andere geht?

    Danke im Vorraus!

    Matthias

  • #2
    Beim Absenden eines Formulars sendet der Browser einen HTTP-Request. Ein Request kann aber immer nur ein Ziel haben.
    Wenn dein Formular nun direkt an den Download geschickt werden würde, wäre die Mailadresse verloren, denn eine statische Downloaddatei verarbeitet keine POST-Daten.
    Also mußt du das Formular erst irgendwohin schicken, wo die Daten verarbeitet werden. Nachdem das passiert ist, kannst du dann mit header() auf die Downloaddatei weiterleiten.
    Der Benutzer merkt davon nichts.

    Kommentar


    • #3
      Danke,

      es ist nicht direkt eine Download Datei sondern eine neue Seite.

      Kannst du das näher erklären hab von PHP nicht SOVIEL Ahnung.

      Danke trotzdem nochmal!

      Kommentar


      • #4
        formular.html
        Code:
        <form action="script.php" method="post">
            <input type="text" name="email" />
            <input type="submit" />
        </form>
        script.php
        PHP-Code:
        <?php
        if (isset($_POST['email'])) {
            
        // hier $_POST['email'] irgendwie speichern
        }
        header('Location: http://example.com/seite.html');
        exit;
        ?>

        Kommentar


        • #5
          Ok, das hatt geklappt aber jetzt kommt das nächste.

          Wenn jetzt jemand keine eMail eingibt oder Namen nicht angibt und enter drückt kommt er trotzdem auf die Seite.

          Kann man eine Prfüfung einbauen ob der Name/eMail angeben wurde?

          Hier mal der Ausschnitt aus dem Script:

          PHP-Code:
            <form action="script.php" method="post">
          <
          input type="hidden" name="l" value="2">
          <
          tr><td align=right>Email:</td>
          <
          td align=left><input type="text" name="e"></td></tr>
          <
          tr><td align=right>Name:</td><td align=left><input type="text" name="f"></td></tr><tr>
          <
          td colspan=2 align=center><input type="submit" name="submit" value="Anmelden"></td>
          </
          tr></form

          Kommentar


          • #6
            beschreibe, falls du es verstanden hast, was die zeile "if(isset(...))" bedeutet, die onemorenerd gezeigt hat.

            Kommentar


            • #7
              Habs nicht wirklich verstanden.

              Kommentar


              • #8
                mehr zu den verwendeten funktionen und sprachkonstrukten unter
                www.php.net
                www.php.net/if
                www.php.net/isset
                www.peterkropff.de
                http://tut.php-q.net

                ist nicht wirklich kompliziert - aber beschäftige dich damit.

                Kommentar


                • #9
                  Habe gerade nicht wirklich Zeit mich damit auseinander zusetzen ... nich falsch verstehen.

                  Mein Programmierer ist bloß gerade in Urlaub und naja ich wollte es noch fertig machen heute.

                  Kommentar


                  • #10
                    Versuch einfach mal das:

                    PHP-Code:

                    <?php
                    if (isset($_POST['email'])) {
                        
                    // hier $_POST['email'] irgendwie speichern
                        
                    header('Location: http://example.com/eine_seite.html');
                    }
                    else{
                        
                    header('Location: http://example.com/eine_andere_seite.html');
                    }
                    exit;
                    ?>
                    Wenn nun eine E-Mail angegeben wurde, kommst du auf eine_seite.html sonst auf eine_andere_seite.html.

                    Du könntest jetzt noch abfragen, ob die E-Mail wirklich gültig ist, indem du nach @ und . suchst.

                    Kommentar


                    • #11
                      Ich rate dringend davon ab, irgendwas auf die Schnelle zusammen zu schustern. Wer if nicht kennt, merkt auch nicht, welche Hintertürchen er aufreißt.

                      PHP ist eine (einfache) Programmiersprache, keine angeborene Fähigkeit. Wenn du nicht bereit bist, es zu lernen, dann wird es ohne fremde Hilfe nicht gehen.
                      Willst du also Geld dafür hinlegen oder hoffst du auf Mitleid? Dann sag es konkret und du wirst zu den Schnorrern oder Auftragsanbietern verschoben.

                      Kommentar


                      • #12
                        Anstelle von isset() mal empty() in Erwägung ziehen. Ansonsten gilt, was onemorenerd bereits sagte. Die Hilfe gibts hier gerne, aber Arbeit auch nicht für lau.
                        Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                        Kommentar


                        • #13
                          Danke ... habs geschafft!

                          So musste es lauten:


                          PHP-Code:
                          if (isset($_POST['e'])) {
                              
                          header('Location: [url]http://example.com/eine_seite.html[/url]');
                          }
                          if (empty(
                          $_POST['e'])) {
                              
                          header('Location: [url]http://example.com/eine_seite_andere.html[/url]');
                          }
                          exit; 
                          Danke trotzdem an alle!

                          Kommentar


                          • #14
                            müsste es nicht. aber lass es mal "deinen programmierer" korrigieren, wenn er zurück ist (ich ahne seine grenzenlose dankbarkeit).

                            Kommentar


                            • #15
                              Das is allerdings falsch.
                              Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                              Kommentar

                              Lädt...
                              X