2016-04-18 9 views
-2

Ich habe dieses HTML-FormularHTML-Formular nicht von PHP verarbeitet wird

<form action="mail.php" method="post"> 

    <div class="col-md-9"> 

     <div class="col-md-4"> 
     <input type="text" name="name" id="name" class="name" placeholder="Your Name"> 
     </div> 

     <div class="col-md-4"> 
     <input type="text" name="email" id="email" class="email" placeholder="Your Email"> 
     </div> 

     <div class="col-md-4"> 
     <input type="text" name="subject" id="subject" class="subject" placeholder="Subject"> 
     </div> 

     <div class="col-md-12"> 
     <textarea name="message" cols="1" rows="1" class="message" placeholder="Your message... " id="message"></textarea> 
     </div> 

     <div class="col-md-4"> 
     <input type="submit" name="send" value="Send Message" id="submit" class="button templatemo_sendbtn"> 
     </div> 

    </div> 

    </form> 

und das ist mein PHP, die ich im Internet gefunden weg, aber ich kann es nicht machen. Bitte hilf mir. Ich versuche, den PHP an die Datei angehängt hinzuzufügen, aber dieser Editor wird es mir nicht erlauben. Was scheint passiert ist, dass, sobald das Formular auf der Webseite ausgefüllt ist, bekomme ich einen Fehler zurück zu gehen und den Code zu beheben, aber ich verstehe nicht, was der Fehler ist, da ich keine Kenntnis von PHP habe. Bitte entblößen Sie mich, ich bin neu auf dieser Plattform.

<?php 
if(isset($_POST['email'])) { 

    // CHANGE THE TWO LINES BELOW 
    $email_to = "[email protected]"; 

    $email_subject = "website html form submissions"; 


    function died($error) { 
     // your error code can go here 
     echo "We are very sorry, but there were error(s) found with the form you submitted. "; 
     echo "These errors appear below.<br /><br />"; 
     echo $error."<br /><br />"; 
     echo "Please go back and fix these errors.<br /><br />"; 
     die(); 
    } 

    // validation expected data exists 
    if(!isset($_POST['first_name']) || 
     !isset($_POST['last_name']) || 
     !isset($_POST['email']) || 
     !isset($_POST['telephone']) || 
     !isset($_POST['comments'])) { 
     died('We are sorry, but there appears to be a problem with the form you submitted.');  
    } 

    $first_name = $_POST['first_name']; // required 
    $last_name = $_POST['last_name']; // required 
    $email_from = $_POST['email']; // required 
    $telephone = $_POST['telephone']; // not required 
    $comments = $_POST['comments']; // required 

    $error_message = ""; 
    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
    if(!preg_match($email_exp,$email_from)) { 
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
    } 
    $string_exp = "/^[A-Za-z .'-]+$/"; 
    if(!preg_match($string_exp,$first_name)) { 
    $error_message .= 'The First Name you entered does not appear to be valid.<br />'; 
    } 
    if(!preg_match($string_exp,$last_name)) { 
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />'; 
    } 
    if(strlen($comments) < 2) { 
    $error_message .= 'The Comments you entered do not appear to be valid.<br />'; 
    } 
    if(strlen($error_message) > 0) { 
    died($error_message); 
    } 
    $email_message = "Form details below.\n\n"; 

    function clean_string($string) { 
     $bad = array("content-type","bcc:","to:","cc:","href"); 
     return str_replace($bad,"",$string); 
    } 

    $email_message .= "First Name: ".clean_string($first_name)."\n"; 
    $email_message .= "Last Name: ".clean_string($last_name)."\n"; 
    $email_message .= "Email: ".clean_string($email_from)."\n"; 
    $email_message .= "Telephone: ".clean_string($telephone)."\n"; 
    $email_message .= "Comments: ".clean_string($comments)."\n"; 


// create email headers 
$headers = 'From: '.$email_from."\r\n". 
'Reply-To: '.$email_from."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $email_subject, $email_message, $headers); 
?> 

<!-- place your own success html below --> 

Thank you for contacting us. We will be in touch with you very soon. 

<?php 
} 
die(); 
?> 

Nach einem Klick einreichen/die Fehlermeldung senden ich bin immer ist: Es tut uns leid, aber es gab Fehler (n) mit dem Formular finden Sie vorgelegt. Diese Fehler erscheinen unten.

Es tut uns leid, aber es scheint ein Problem mit dem von Ihnen eingereichten Formular zu bestehen.

Bitte gehen Sie zurück und beheben Sie diese Fehler.

+5

A. Ich sehe kein PHP, und B. Sie müssen spezifischer sein, mit welchem ​​Problem (s) Sie haben. Aussage: "* Ich kann es nicht funktionieren lassen *" bietet nicht genügend Informationen an. Was funktioniert nicht? Welche Fehler erhalten Sie, wenn überhaupt? Etc. – Marcus

+0

Entschuldigung ich habe meine Frage – Sash

+0

behoben "* Ich bekomme einen Fehler, um zurückzugehen und den Code zu reparieren *" Sie müssen den Fehler für Starter posten. Bitte verfallen Sie alle relevanten Informationen zu Ihrem Problem. Ansonsten werden wir für eine Stunde hin und her gehen, wobei die Leute dich nach mehr Informationen fragen müssen. Bitte posten Sie alle/alle Fehler, die Sie sehen. Z.B. Geht der Bildschirm * leerweiß *? Siehst du etwas wie "Nachricht: ..."? – Marcus

Antwort

0

In Ihrem PHP-Code erreichst du den Block, der die died() Funktion aufruft, die das Skript wird haulting und die Fehlermeldung produzieren:

// validation expected data exists 
if (!isset($_POST['first_name']) || 
    !isset($_POST['last_name']) || 
    !isset($_POST['email']) || 
    !isset($_POST['telephone']) || 
    !isset($_POST['comments'])) { 
    died('We are sorry, but there appears to be a problem with the form you submitted.');  
} 

Der Grund dafür ist, weil das Skript oben ist schauen, ob mehrere Formularfelder gesendet/gepostet wurden, zu denen sie nicht gehören. Sie haben kein Formular input mit name="first_name", name="last_name", name="telephone" oder name="comments". Da diese Bedingung nicht zufriedenstellend war, warf sie die died() Funktion.

Sie können dieses Problem beheben, indem Sie Ihre HTML-Formular zu ändern, zu entfernen name="name", und das Hinzufügen eines input für * first_name and last_name , changing name = "message" to name = "Kommentare" `und das Hinzufügen von einen Eingang für Telefon:

<form action="mail.php" method="post"> 

    <div class="col-md-9"> 

     <div class="col-md-4"> 
     <input type="text" name="first_name" id="first_name" class="name" placeholder="Your First Name"> 
     </div> 

     <div class="col-md-4"> 
     <input type="text" name="last_name" id="last_name" class="name" placeholder="Your Last Name"> 
     </div> 

     <div class="col-md-4"> 
     <input type="text" name="telephone" id="telephone" class="email" placeholder="Your Telephone"> 
     </div> 

     <div class="col-md-4"> 
     <input type="text" name="email" id="email" class="email" placeholder="Your Email"> 
     </div> 

     <div class="col-md-4"> 
     <input type="text" name="subject" id="subject" class="subject" placeholder="Subject"> 
     </div> 

     <div class="col-md-12"> 
     <textarea name="comments" cols="1" rows="1" class="message" placeholder="Your message... " id="comments"></textarea> 
     </div> 

     <div class="col-md-4"> 
     <input type="submit" name="send" value="Send Message" id="submit" class="button templatemo_sendbtn"> 
     </div> 

    </div> 
</form> 

EDIT

die folgenden Bedingungen erfüllt sein müssen:

012.351.
$email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
if(!preg_match($email_exp,$email_from)) { 
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
} 
$string_exp = "/^[A-Za-z .'-]+$/"; 
if(!preg_match($string_exp,$first_name)) { 
    $error_message .= 'The First Name you entered does not appear to be valid.<br />'; 
} 
if(!preg_match($string_exp,$last_name)) { 
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />'; 
} 
if(strlen($comments) < 2) { 
    $error_message .= 'The Comments you entered do not appear to be valid.<br />'; 
} 
if(strlen($error_message) > 0) { 
    died($error_message); 
} 

Das bedeutet, dass Sie eine gültige E-Mail-Adresse eingeben müssen (z. [email protected]), ein Vorname (z. B. John), ein Nachname (z. B. Doe) und zwei oder mehr Zeichen in die comments TextBox im Formular.

+0

hinzugefügt Vielen Dank Marcus. Dies hat den Fehler nicht gelöst und gibt dasselbe zurück. Würde es funktionieren, wenn die gestaute Funktion entfernt wird? – Sash

+0

Füllen Sie * das Formular tatsächlich aus, indem Sie eine gültige E-Mail-Adresse, einen Vor-/Nachnamen und einige Kommentare eingeben? – Marcus

+0

Ja, ich bin in der Tat – Sash

Verwandte Themen