2016-11-02 2 views
0

Ich habe ein Kontaktformular mit HTML und PHP erstellt.Hinzufügen einer E-Mail-Validierung zum Kontaktformular

Ich habe es geschafft, die Felder obligatorisch zu machen, indem ich im HTML "erforderlich" benutze. jedoch, gerade jetzt, wenn ich etwas in der E-Mail-Fild hinzufügen, funktioniert der Absenden-Button.

ich bevorzuge dies mit HTML und nicht mit PHP.

  • meine Fähigkeiten in der Codierung ist sehr begrenzt.

HTML-Code:

<div class="container contactform center"> 
 
<h2 class="text-center wowload fadeInUp">Get in touch</h2> 
 
    <div class="row wowload fadeInLeftBig"> 
 
     <div class="col-sm-6 col-sm-offset-3 col-xs-12"> 
 
     <form action="/assets/bootstrap/php/emailscript.php" method="post"> 
 
      <input type="text" placeholder="Name" name="Name" required > 
 
      <input type="text" placeholder="Company" name="Company" required > 
 
      <input type="text" placeholder="Email" name="Email" required > 
 
      <input type="text" placeholder="Subject" name="Subject" required > 
 
      <textarea rows="5" placeholder="Message" name="Message" required ></textarea> 
 
      <button type="submit" class="btn btn-primary"><i class="fa fa-paper-plane"></i> Send</button> 
 
     </form> 
 

 
     </div> 
 
    </div> 
 
</div>

PHP-Code:

<?php 
 
if(isset($_POST['Name'])) 
 
{ 
 
    $name=$_POST['Name'] ; 
 
    $company=$_POST['Company'] ; 
 
    $from=$_POST['Email'] ; 
 
    $message=$_POST['Message'] ; 
 
    $to="[email protected]" ; 
 
    $subject="Website Contact Form" ; 
 

 
    mail ($to, $subject, $message, "From: " . $from . $name . $company) ; 
 

 
    echo "Sent" ; 
 

 
} 
 
?>

Ich möchte einreichen nur mit gültigem E-Mail-Formular ([email protected])

+0

Haben Sie diese auf Client-Seite (html) oder serverseitige (php) zu tun? – rbr94

+0

Willkommen bei SO. Sie geben nicht an, was Sie bisher versucht haben. Veröffentlichen Sie den Code, den Sie versucht haben, und die Fehler, die Sie erhalten haben. Sei so genau wie möglich, denn das führt zu besseren Antworten. –

+0

Validierung von wo Client/Server – Karthi

Antwort

0

versuchen Kann

  1. required in html

    <input .... name="Name" required> 
    
  2. empty in PHP

    if (empty($name) || empty($company) || empty($from) ||empty($message)) { 
        # empty 
        echo "Empty...."; 
    } else { 
        # send mail 
        mail ($to, $subject, $message, "From: " . $name . $company . $email) ; 
    } 
    

Oder kann auch die Validierung oder JavaScript verwenden

Vorsicht über SQL Injection

Example of contact form validation

+0

das" erforderlich "im HTML tatsächlich geholfen , Vielen Dank. aber dennoch muss ich die E-Mail an eine "echte" E-Mail wie [email protected] validieren – Balagosh

+0

@Balagosh können Sie nur E-Mails validieren. keine echte E-Mail. –

1

können Sie für E-Mail verwenden:

$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); 

und für andere Eingabefelder

if(!isset($_POST['fieldName'])) { 
    // throw exception or return error 
} 
+2

'isset()' wird True zurückgeben, auch wenn es leer ist. Es prüft nur, ob die Variable gesetzt ist, was beim Senden des Formulars immer der Fall ist. 'empty()' überprüft auch, ob tatsächlich ein Wert darin enthalten ist. – icecub

+0

Ja 'empty()' Funktion kann verwendet werden, um leere oder Null-Wert zu vermeiden –

1

In Ihrem PHP-Code:

<?php 
if(isset($_POST['Email']) && $_POST['Email']!='') 
{ 
    $name=$_POST['Name'] ; 
    $company=$_POST['Company'] ; 
    $from=$_POST['Email'] ; 
    $message=$_POST['Message'] ; 
    $to="[email protected]" ; 
    $subject="Website Contact Form" ; 

    mail ($to, $subject, $message, "From: " . $name . $company . $email) ; 
    echo "Sent" ; 
    } 
    else 
    { 
    echo "Please insert email address."; 
    } 
?> 
+1

'if (isset ($ _ POST ['E-Mail']) && $ _POST ['Email']! = '')', Die reduziert werden können nur ein '! empty()'. –

Verwandte Themen