Loading...   Upload Image

Versandsbestätigung (Kontakt) auf derselben SeiteForum » Tutorials » Help » Versandsbestätigung (Kontakt) auf derselben Seite

Neues Thema verfassen Neues Thema

  • neomiiUser ist offline
    Beginner


    neomii

    Registriert: 03.02.2013
    Beitraege: 48

    03.02.2013 um 19:11 Uhr

    Guten Abend!

    Bevor ich nun aber ganz vom PC verschwinde, mchte ich hier schonmal eine Fragestellung aufgeben:

    Wie schaffe ich es, eine Versandsbesttigung ins Kontaktformular einzubauen, ohne ein neues Fenster mit einzubauen?

    Ich stelle mir das so vor, dass sich beim Versand die Eingabefelder wieder leeren und gleichzeitig ber den Eingabefeldern ein Satz erscheint, wie zB.: "Deine Nachricht wurde erfolgreich versendet!"

    Liebe Gre
    Naomi



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1058

    03.02.2013 um 20:31 Uhr

    Hey,

    wie sieht denn dein Kontaktformular bis dato aus?

    So in etwa koennte man sowas umsetzten:

        //mailfunktion: 
          $senden = mail($email, $betreff, $nachricht,"From: $abs_email");  // Nachricht verschicken
      
    
         if($senden){ // Wenn die Mail versandt wurde, dann Text ausgeben
            echo "Deine Nachricht wurde erfolgreich versendet!"; 
         }
    



    Oder aber so in der Art, gleich mit einer Fehlermeldung, wenn die Nachricht nicht verschickt wurde:

        //mailfunktion: 
          if( mail($email, $betreff, $nachricht,"From: $abs_email") ){ // Nachricht verschicken, wenn die Mail versandt wurde, dann Text ausgeben
            echo "Deine Nachricht wurde erfolgreich versendet!"; 
         }else{
            echo "Es ist ein Fehler aufgetreten, die Nachricht wurde nicht versandt!";
        }
    


    Liebe Gruesse
    Alice



    ... { signatur } ...
  • neomiiUser ist offline
    Beginner


    neomii

    Registriert: 03.02.2013
    Beitraege: 48

    03.02.2013 um 20:37 Uhr

    Uiii das ging ja wieder schnell :)

    So sieht es momentan aus: niora.pf-control.de/kontakt.php

    Edit: Und hier der Code:

    (Im Anpassen bin ich da leider nicht so gut. Die Funktionen oben werden entweder ignoriert oder beien sich mit anderen "else"-Begriffen)

    <?php
        $Empfaenger = "naomi.oelker@gmail.com";
        if($_REQUEST['submit']){
          if(empty($_REQUEST['name']) || empty($_REQUEST['email'])
           || empty($_REQUEST['text']))
          {
            echo"Bitte gehe <a href=\"javascript:history.back();\">
            zur&uuml;ck</a> und f&uuml;lle alle Felder aus!";
          }
    
          else{
            $Mailnachricht="Du hast eine neue Kontaktaufnahme erhalten:\n\n";
            while(list($Formularfeld, $Wert)=each($_REQUEST))
            {
              if($Formularfeld!="submit")
              {
                $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
              }
            }
            $Mailnachricht .= "\nDatum/Zeit: ";
            $Mailnachricht .= date("d.m.Y H:i:s");
            $Mailbetreff = "Kontaktformular Joy-Farrell";
            $Mailbetreff .= $_REQUEST['Betreff'];
            mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: "
            .$_REQUEST['email']);
            echo "Deine Kontaktaufnahme war erfolgreich: \n".$Mailnachricht;      }
        }
        else
        {
          echo"Ein Fehler ist aufgetreten. Bitte gehe auf diese
          <a href=\"kontakt.php\">Seite</a>.";
        }
        ?>



    Der Beitrag wurde insgesamt 2 mal editiert, zuletzt 04.02.2013 um 09:54 Uhr ...
  • neomiiUser ist offline
    Beginner


    neomii

    Registriert: 03.02.2013
    Beitraege: 48

    08.02.2013 um 12:29 Uhr

    Sooo ... Die Funktionen, die du mir reingestellt hast, sind mehr oder weniger schon in meinem Script vorhanden. Nur hat sich das nicht so gelst, dass sich alles auf der selben Seite abspielt. Habe auch versucht, mich am Gstebuch zu orientieren, wie es so geklappt hat. Aber bin leider nicht drauf gekommen^^

    Dann habe ich berlegt und berlegt und mir ist aufgefallen, dass fr die Besttigung "kontaktformular.php" geffnet wird, und es nicht bei der Startseite "kontakt.php" bleibt. Da ich auf "kontaktformular.php" kein Design habe (alles wei), habe ich einfach mal ausprobiert, das Script von "kontakt.php" in "kontaktformular.php" zu kopieren und den bestehenden Code von "kontaktformular.php" an der Stelle einzufgen, wo spter die "Deine Nachricht wurde erfolgreich versendet!"-Nachricht erscheinen soll. Und siehe da: Voil - Geklappt!

    Jetzt ist aber folgendes Problem aufgetreten:

    echo"<i>Deine Nachricht wurde erfolgreich versendet!</i>"; 

    wird gleich 4 Mal angezeigt:



    Vorher wurde beim Abschicken direkt noch mit angezeigt, welche Nachricht man unter welchem Namen etc. verschickt hat. Kann es sein, dass diese "unausgefllten" Felder so ersetzt bzw. trotzdem ausgefhrt werden?
    Wie bekomme ich es hin, dass diese Nachricht nur einmal angezeigt wird?

    Hier mein Code:

    <?php
        $Empfaenger = "naomi.oelker@gmail.com";
        if($_REQUEST['submit']){
          if(empty($_REQUEST['name']) || empty($_REQUEST['email'])
           || empty($_REQUEST['text']))
    	 
          {
            echo"Bitte <i> f&uuml;lle alle Felder aus!</i>";
          }
    
          else{
            $Mailnachricht="Du hast eine neue Kontaktaufnahme erhalten:\n\n";
            while(list($Formularfeld, $Wert)=each($_REQUEST))
            {
              if($Formularfeld!="submit")
              {
                $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
    			echo"<i>Deine Nachricht wurde erfolgreich versendet!</i>"; 
    			
              }
            }
            $Mailnachricht .= "\nDatum/Zeit: ";
            $Mailnachricht .= date("d.m.Y H:i:s");
            $Mailbetreff = "Kontaktformular Joy-Farrell";
            $Mailbetreff .= $_REQUEST['Betreff'];
            mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: "
            .$_REQUEST['email']);}
        }
        else
        {
          echo"<i>Ein Fehler ist aufgetreten. Bitte versuche es erneut!.</i>";
        }
    
        ?>



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1058

    09.02.2013 um 18:49 Uhr

    Usereingaben, NIEMALS ungefiltert verarbeiten, da oeffnest du sonst Tuer und Tor fuer Leute, die dein Formular missbrauchen koennten! ;)

    Dein Fehler ist in der While Schleife begraben, bei jedem Feld, welches die Schleife erfolgreich durchlaeuft wird die Nachricht ausgegeben!

    Versuch es mal damit:

    <?php
        
        if($_POST['submit']){
          
          if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['text'])){
            echo"Bitte <i> f&uuml;lle alle Felder aus!</i>";
          }else{
    
            $Mailnachricht ="Du hast eine neue Kontaktaufnahme erhalten:\n\n";
    
            while(list($Formularfeld, $Wert)=each($_POST)){
              if($Formularfeld!="submit"){
                $Mailnachricht .= $Formularfeld.": ".$Wert."\n";			
              }
            }
            
            $Mailnachricht .= "\nDatum/Zeit: ";
            $Mailnachricht .= date("d.m.Y H:i:s");
            $Mailbetreff = "Kontaktformular Joy-Farrell";
            $Mailbetreff .= $_POST['Betreff'];
            
            // Email Versenden => Nachricht ausgeben!
            	if(mail("naomi.oelker@gmail.com", htmlspecialchars($Mailbetreff), htmlspecialchars($Mailnachricht), "From: ".htmlspecialchars($_POST['email']))){
            		echo"<i>Deine Nachricht wurde erfolgreich versendet!</i>";
            	}else{
          			echo"<i>Ein Fehler ist aufgetreten. Bitte versuche es erneut!.</i>";
        		}        
            }// close else        
        }//close submit
    ?>



    ... { signatur } ...
  • neomiiUser ist offline
    Beginner


    neomii

    Registriert: 03.02.2013
    Beitraege: 48

    09.02.2013 um 19:01 Uhr

    Uiiii es klappt, es klappt! *freu*

    Welche Usereingaben meinst du genau?



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1058

    09.02.2013 um 19:09 Uhr

    ALLES was vom User kommt, sprich alle Formularfelder, oder aber Variablen, welche per URL uebergeben werden, sollten vor der eigentlichen Verwendung auf ihre Korrektheit/Plausibilitaet ueberprueft werden.

    Z.B. wenn eine Variable NUR aus Zahlen bestehen sollte,
    dann sollte darauf geachtet werden, dass auch nur Zahlen zulaessig sind und nix anderes.

    Die EmailAdresse auch wirklich eine EmailAdresse ist, usw. ...



    ... { signatur } ...
  • neomiiUser ist offline
    Beginner


    neomii

    Registriert: 03.02.2013
    Beitraege: 48

    09.02.2013 um 19:17 Uhr

    Ach sooo ist das gemeint :) Alles klar, ich werde es mir merken! Ich hre nur immer auf, sobald es funktioniert. Noch habe ich es nicht raus, was alles genau in so einem Code gepackt werden muss^^

    Vielen Dank dir! :)




[ 1 ] Seite 1 von 1


       ALL-INKL.COM - Webhosting Server Hosting Domain Provider