Danke/Fehlerseite eines einfachen Formulars

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

  • Danke/Fehlerseite eines einfachen Formulars

    Hallo,

    hab mit der Suchfunktion nicht das geeignete gefunden. Ich habe folgendes Problem:

    ich habe eine kleines Formular in HTML erstellt und gebe die ergebnisse über den "action" Parameter an eine "formular.php" datei.

    Dort nutze ich die Funktion
    PHP-Code:
    mail() 
    .
    Soweit funktioniert das auch. Ich habe in der Hilfe gelesen, dass
    PHP-Code:
    mail() 
    bei Erfolg "true" zurückliefert. Ich möchte nun irgendwie abfragen, ob die Mail korrekt versendet wurde, falls "Ja" dann soll eine Seite "danke.htm" im Inhaltteil meines Frames angezeigt werden, wenn "Nein" zutrifft dann soll die Datei "fehler.htm" gestartet werden.

    Ist dies mit relativ wenig aufwand in der Datei formular.php zu implementieren? Über eine schnelle und für einen newbie einfach gehaltene Antwort würde ich mich sehr freuen.

    hier mein bisheriger Code:
    PHP-Code:
    $empfaenger="rezept@steffens-homepage.com";
    $betreff "Rezept";
    $nachricht "$vorname hat ein Rezept abgegeben \n
    Email: 
    $mail \n
    Homepage: 
    $Homepage \n
    Rezeptname: 
    $rezeptname \n
    Kategorie: 
    $Kategorie \n
    Dauer: 
    $Dauer noch länger: $Dauer2 \n
    Personen: 
    $Pers \n
    Zutaten: \n
    $zutaten \n
    Zubereitung: \n
    $zubereitung \n
    Bemerkungen: \n
    $Bemerkungen";
    mail($empfaenger$betreff$nachricht"FROM: Form"); 
    mfg
    sk.ho

  • #2
    guck dir mal if() an.

    Kommentar


    • #3
      if() wäre ja logisch, aber ich weiß nicht mit welchen Befehlen ich HTML-Seiten aufrufen kann!

      Welche sollte ich mir mal anschauen?! Hatte was gefunden mit

      PHP-Code:
      header ("Location: $danke
      und $danke dann entsprechend definiert mit der Seite...

      Aber wenn ich das schreibe, dann wird die seite nicht angezeigt, also scheint danoch irgendwas zu fehlen bzw falsch zu sein.

      mfg
      sk.ho

      Kommentar


      • #4
        nichts angezeigt kann nicht.

        aber was du da postest sind bestimmt nicht die korrekten syntax. da fehlen z.B. " und ;

        Kommentar


        • #5
          Aber wenn ich das schreibe, dann wird die seite nicht angezeigt, also scheint danoch irgendwas zu fehlen bzw falsch zu sein.
          sondern? was passiert stattdessen?

          header ist schon passend zum weiterleiten, ... davor darf u.a. keine ausgabe erfolgen!
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            wie wäre es denn hiermit:

            PHP-Code:
            if($id == "send") {

            // hier kannst du die dankeseite hinmachen und das form abschicken

            }
            else
            {

            // dein formular
            // <form method="post" action="index.php?id=send">


            Kommentar


            • #7
              ja war ein fehler meinerseits, ich habe folgenden php code jetzt, ich kann das formular abschicken, es kommt an wie es ankommen soll, aber die Danke seite wird nicht angezeigt:

              PHP-Code:
              $thanks "danke.htm";
              $empfaenger="rezept@steffens-homepage.com";
              $betreff "Rezept";
              $nachricht "$vorname hat ein Rezept abgegeben \n
              Email: 
              $mail \n
              Homepage: 
              $Homepage \n
              Rezeptname: 
              $rezeptname \n
              Kategorie: 
              $Kategorie \n
              Dauer: 
              $Dauer noch länger: $Dauer2 \n
              Personen: 
              $Pers \n
              Zutaten: \n
              $zutaten \n
              Zubereitung: \n
              $zubereitung \n
              Bemerkungen: \n
              $Bemerkungen";
              mail($empfaenger$betreff$nachricht"FROM: Form");
              header ("Location: $thanks"); 

              Kommentar


              • #8
                ahh,
                aber die Danke seite wird nicht angezeigt:
                sondern ? fehlermeldung?
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  Location MUSS eine komplette URL haben!

                  Kommentar


                  • #10
                    wie wäre es denn mit if?

                    PHP-Code:

                    if($id == "send") {

                    echo 
                    "vielen dank für die kontaktaufnahme";
                    // oder include der danke.htm

                    $empfaenger="rezept@steffens-homepage.com";
                    $betreff "Rezept";
                    $nachricht "$vorname hat ein Rezept abgegeben \n
                    Email: 
                    $mail \n
                    Homepage: 
                    $Homepage \n
                    Rezeptname: 
                    $rezeptname \n
                    Kategorie: 
                    $Kategorie \n
                    Dauer: 
                    $Dauer noch länger: $Dauer2 \n
                    Personen: 
                    $Pers \n
                    Zutaten: \n
                    $zutaten \n
                    Zubereitung: \n
                    $zubereitung \n
                    Bemerkungen: \n
                    $Bemerkungen";
                    mail($empfaenger$betreff$nachricht"FROM: Form");


                    }
                    else
                    {

                    // dein formular
                    // <form method="post" action="index.php?id=send">


                    Kommentar


                    • #11
                      es wir eine leere seite angezeigt! keine fehlermeldung, gar nix halt.. in der Datei "danke.htm" steht aber was drin *;-)

                      Kommentar


                      • #12
                        Original geschrieben von TobiaZ
                        Location MUSS eine komplette URL haben!
                        zusätzlich: nach einem POST würde ich generell eine weiterleitung mit header() empfehlen, sonst drücke ich 27mal f5.
                        EDIT:
                        und wie lautet die adresse der leeren seite? muß ja was in der adresszeile stehn ...
                        Die Zeit hat ihre Kinder längst gefressen

                        Kommentar


                        • #13
                          also die leere Seite wurde angezeigt weil er nach dem php code den HTML Teil interpretiert hatte in der "formular.php", da hab ich in den Bodyteil nun einfach mal nen Danketext reingeschrieben und den Zeigt er jetzt an. Also gänzlich ohne aufruf einer extraseite... jetzt müsste ich nur noch abfragen ob das Mailsend erfolgreich war, und entsprechend "fehler" oder "danke" ausgeben.

                          mmh, mal sehen was ich da noch finde..das mit den if(id=="send") werd ich mir mal anschauen.

                          Danke erstmal, wenn jemand noch ne Tipp hat ist dieser natürlich willkommen :-)

                          Kommentar


                          • #14
                            Original geschrieben von sk.ho
                            Danke erstmal, wenn jemand noch ne Tipp hat ist dieser natürlich willkommen :-)
                            gut wäre es auch noch zu prüfen, ob das formular richtig ausgefüllt wurde ... sonst könntest du etliche mails mit keinem inhalt bekommen.

                            Kommentar


                            • #15
                              PHP-Code:
                              if (mail(...)) header("Location:".$_SERVER["PHP_SELF"]."?r=danke"); else header("Location:".$_SERVER["PHP_SELF"]."?r=undanke"); 
                              so?
                              Die Zeit hat ihre Kinder längst gefressen

                              Kommentar

                              Lädt...
                              X