Formularauswertung! echo = weiterleitung auf xxx.htm

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

  • Formularauswertung! echo = weiterleitung auf xxx.htm

    hallo,
    habe folgendes problem:

    das script soll wie folgt funktionieren:

    1) mr x vergisst im formularfeld seine email adresse -> nun soll er auf error.htm weitergeleitet werden
    2) mr x füllt das formular richtig aus und wird zu xyz.htm weitergeleitet

    wäre super wenn ihr mir da helfen könntet


    <?php

    $Empfaenger = "info@xxxxxx.de";

    if($_REQUEST['Send'])
    {
    if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
    {
    echo"Bitte gehen Sie <a href= \"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
    }
    else
    {
    $Mailnachricht = "Sie haben folgende Nachricht erhalten: \n\n";
    while(list($Formularfeld, $Wert)=each($_REQUEST))
    {
    if($Formularfeld!="Send")
    {
    $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
    }
    }
    $Mailnachricht .= "\nDatum/Zeit: ";
    $Mailnachricht .= date("d.m.Y H:i:s");
    $Mailbetreff = "Kontakt: ";
    $Mailbetreff .= $_REQUEST['Betreff'];
    mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST['Email']);
    echo"Vielen Dank für Ihre eMail!<br>
    Sie werden in 5 Sekunden weitergeleitet.";
    }
    }
    else
    {
    echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"kontakt.htm\">Seite</a>.";
    }

    ?>

  • #2
    Bitte benutze die PHP-Tags des Forums gemäß den Regeln.

    Außerdem wäre es nicht verkehrt, wenn du uns sagst, was nicht geht und welche Fehlermeldungen kommen.

    Kommentar


    • #3
      also ich würde das folgendermaßen aufbauen:

      also man hat z.b. die datei forumlar.php, in dem das form steht.
      die sendet das dann per action an einen ueberpruefung.php

      die ueberpruefung.php könnte so aussehen
      PHP-Code:
      <?
      session_start()
      if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
      {
         header("Location:formular.php");
      }
      else
      {
         header("Location:xyz.php");
      }

      ?>
      xyz.php ist halt die seite, auf dem verwiesen wird, wenn die eingaben ok sind!

      zu beachten ist, dass die ueberpruefung.php keine ausgaben (e.g. echo) haben darf, sonst gibt es einen fehler! Das liegt an der header - methode
      Zuletzt geändert von dioony; 11.02.2006, 14:25.
      Das Problem zu erkennen ist wichtiger, als die Lösung zu erkennen, denn die genaue Darstellung des Problems führt zur Lösung.
      [Albert Einstein

      Kommentar


      • #4
        hi master,
        sorry bin neu hier...
        also wie oben beschrieben möchte ich das wenn ein formularfeld wie "Name" nicht ausgefüllt wurde das bei echo NICHT eine textzeile mit einem zutück text link erscheint sondern das der user auf die seite error.htm kommt.

        bei dem zweiten echo möchte ich das er wenn alles ausgefüllt wurde das der user auf die seite thankyou.htm gelangt.

        wie stelle ich das nun an ?

        danke andré

        Kommentar


        • #5
          Bitte keine Short-Tags, sonst macht gleich jemand den nächsten Thread auf mit "geht nicht".

          Ich finde die Methode ziemlich 'benutzerfeindlich', denn der User erfährt nicht, was er falsch gemacht hat. Er sendet ab, landet wieder auf der Formularseite, aber da er keine Fehlermeldung bekommt, muß er annehmen, daß es geklappt hat und versucht es nicht noch einmal.

          Gefragt war hier auch explizit das Umleiten auf eine Error-Seite ...

          ... und dann bitte mit korrektem Location-Header (absolute URI)!


          (Was ist eigentlich aus dem guten alten z. B. geworden?)
          Zuletzt geändert von onemorenerd; 11.02.2006, 14:15.

          Kommentar


          • #6
            in dem formularfeld sind die pflichtfelder gekennzeichnet so das der user siht was es eingeben muss -> ich weis man sollte immer vom dümmsten fall ausgehen !

            ich habe jetzt mal die variante getestet die gepostet wurde aber die funktioniert leider nicht... ich bekomme die fehlermeldung parse error on line 17

            <?php
            $Empfaenger = "info@xxxx.de";
            session_start()
            if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
            {
            header("Location:error.htm");
            }
            else
            {
            header("Location:thankyou.htm");
            }
            {
            $Mailnachricht = "Sie haben folgende Nachricht erhalten: \n\n";
            while(list($Formularfeld, $Wert)=each($_REQUEST))
            {
            if($Formularfeld!="Send")
            {
            $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
            }
            }
            $Mailnachricht .= "\nDatum/Zeit: ";
            $Mailnachricht .= date("d.m.Y H:i:s");
            $Mailbetreff = "DSIGN69 | Kontaktformular: ";
            $Mailbetreff .= $_REQUEST['Betreff'];
            mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST['Email']);
            ?>

            Kommentar


            • #7
              Ich werde kein Wort mehr sagen, bis du dir endlich die Regeln durchgelesen und die PHP-Tags angewöhnt hast (Beitrag ändern)!

              Und dioony, du darfst gern deinen Code umbrechen bzw. den Text rausnehmen.

              Kommentar


              • #8
                was hab ich denn nun falsch gemacht ? ich wollte dir doch nur zeigen wie das script aussieht !

                Kommentar


                • #9
                  Original geschrieben von DS69

                  PHP-Code:
                  <?php
                  $Empfaenger 
                  "info@xxxx.de";
                  session_start()
                  if(empty(
                  $_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
                  {
                     
                  header("Location:error.htm");
                  }
                  else
                  {
                     
                  header("Location:thankyou.htm");
                  }
                     { 
                  // diese Klammer macht keinen Sinn
                        
                  $Mailnachricht "Sie haben folgende Nachricht erhalten: \n\n";
                        while(list(
                  $Formularfeld$Wert)=each($_REQUEST))
                        {
                           if(
                  $Formularfeld!="Send")
                           {
                              
                  $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
                           }
                        }
                        
                  $Mailnachricht .= "\nDatum/Zeit: ";
                        
                  $Mailnachricht .= date("d.m.Y H:i:s");
                        
                  $Mailbetreff "DSIGN69 | Kontaktformular: ";
                        
                  $Mailbetreff .= $_REQUEST['Betreff'];
                        
                  mail($Empfaenger$Mailbetreff$Mailnachricht"From: ".$_REQUEST['Email']);
                  ?>
                  Wenn du also diese datei als überprüfung nimmst und sie auf error verweisen soll, wenn die eingaben nicht ok sind oder ne email schicken und dann auf thankyou.htm weiterleiten
                  dann so:

                  PHP-Code:
                  <?php
                  $Empfaenger 
                  "info@xxxx.de";
                  session_start()
                  if(empty(
                  $_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
                  {
                     
                  header("Location:error.htm");
                  }
                  else
                  {
                        
                  $Mailnachricht "Sie haben folgende Nachricht erhalten: \n\n";
                        while(list(
                  $Formularfeld$Wert)=each($_REQUEST))
                        {
                           if(
                  $Formularfeld!="Send")
                           {
                              
                  $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
                           }
                        }
                        
                  $Mailnachricht .= "\nDatum/Zeit: ";
                        
                  $Mailnachricht .= date("d.m.Y H:i:s");
                        
                  $Mailbetreff "DSIGN69 | Kontaktformular: ";
                        
                  $Mailbetreff .= $_REQUEST['Betreff'];
                        
                  mail($Empfaenger$Mailbetreff$Mailnachricht"From: ".$_REQUEST['Email']);
                     
                  header("Location:thankyou.htm");
                  }
                  ?>
                  wenn die funktion header aufgerufen wird, dann wird der rest, der nach der funktion kommt, nicht mehr ausgeführt...
                  Das Problem zu erkennen ist wichtiger, als die Lösung zu erkennen, denn die genaue Darstellung des Problems führt zur Lösung.
                  [Albert Einstein

                  Kommentar


                  • #10
                    danke dioony.... ich werde es direkt mal ausprobieren...
                    meld mich gleich nochmal...

                    Kommentar


                    • #11
                      Original geschrieben von dioony
                      wenn die funktion header aufgerufen wird, dann wird der rest, der nach der funktion kommt, nicht mehr ausgeführt...
                      Das stimmt zwar für den obigen Code, liegt aber nicht an header(). Die Funktion beendet das Script nicht, sondern es gibt schlicht keinen Code nach header().

                      Und bitte: http://www.w3.org/Protocols/rfc2616/....html#sec14.30

                      Kommentar


                      • #12
                        hmm leider erhalte ich immernoch den prase error on line 17...

                        Kommentar


                        • #13
                          in der zeile 17 wo if(empty.... steht

                          scheint irgendwo ein fehler zu sein nur wo????

                          Kommentar


                          • #14
                            HAT NOCH EINER EINEN RAT WIE ICH DAS NUN VERWIRKLICHE ? BITTE!

                            Kommentar


                            • #15
                              Original geschrieben von DS69
                              HAT NOCH EINER EINEN RAT WIE ICH DAS NUN VERWIRKLICHE ? BITTE!
                              Das ist jetzt nicht dein Ernst, das du nach schon ein paar Minuten anfängst zu drängeln?

                              Allein aus diesem Grund werde ich jetzt nicht helfen und dir erstemal genügend Zeit zum nachdenken geben!
                              mfg - sagg

                              Kommentar

                              Lädt...
                              X