AdeleB
AdeleB

Reputation: 1

Validating email form

What's the best solution to make the name and email fields compulsory in my form?

Can't seem to find a direct solution for my form and no expert.

I'm currently receiving loads of blank emails.

HTML code

<form name="enq" method="post" action="mail/myphpfile.php" onSubmit="return validation();">
  <fieldset>
    <input type="text" name="name" id="name" value=""  class="input-block-level" placeholder="Name" />
    <input type="text" name="email" id="email" value="" class="input-block-level" placeholder="Email" />
    <textarea rows="11" name="message" id="message" class="input-block-level" placeholder="Comments"></textarea>
    <div class="actions">
      <input type="submit" value="Send Your Message" name="submit" id="submitButton" class="btn btn-info pull-right" title="Click here to submit your message!" />
    </div>
  </fieldset>
</form>

PHP code

<?php
if(isset($_POST['submit']))
{
    $name = $_POST['name'];
    $email = $_POST['email'];
    $query = $_POST['message'];
    $email_from = $name.'<'.$email.'>';

    $to="[email protected]";
    $subject="Enquiry from my website";
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= "From: ".$email_from."\r\n" . "BCC:[email protected],      [email protected], [email protected]\r\n";
    $message="    
     Name: $name       
     <br>
     Email-Id:$email       
     <br>
     Message:$query";

    if(mail($to,$subject,$message,$headers))
            header("Location:../thank-you.html");
    else
        header("Location:../error.html");
        //contact:[email protected]
}
?>

Upvotes: 0

Views: 108

Answers (4)

Soyab Badi
Soyab Badi

Reputation: 400

try this!!

if(isset($_POST['submit']))
{
    $email = test_input($_POST["email"]);
    if (!filter_var($email, FILTER_VALIDATE_EMAIL) && $email =="" ) {
        $emailErr = "Enter valid email."; 
    }
    else
    {
        $emailErr = "";
    }

    if( $emailErr==""){
        mail($to,$subject,$message,$headers);
        header("Location:../thank-you.html");

    }
    else
    {
        echo $emailErr;
       header("Location:../error.html");
    }
}

Upvotes: 0

Zhunder
Zhunder

Reputation: 83

In HTML5 this should work fine!

<input type="text" name="name" id="name" value=""  class="input-block-level" placeholder="Name" required/>

<input type="email" name="emailField" id="name" value=""  class="input-block-level" placeholder="Email" required/>

Upvotes: 0

dod29
dod29

Reputation: 105

Try

  <?php
 if(isset($_POST['submit']) && !empty($_POST['email']) && !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false)
{
$name = $_POST['name'];
$email = $_POST['email'];
$query = $_POST['message'];
$email_from = $name.'<'.$email.'>';

$to="[email protected]";
$subject="Enquiry from my website";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$email_from."\r\n" . "BCC:[email protected],      [email protected], [email protected]\r\n";
$message="Name: $name <br>
 Email-Id:$emai<br>
 Message:$query ";

if(mail($to,$subject,$message,$headers))
 header("Location:../thank-you.html");
 else
  header("Location:../error.html");
 //contact:[email protected]
 }

Upvotes: 1

Devsi Odedra
Devsi Odedra

Reputation: 5322

use html5 required validation like this

<input type="text" name="name" id="name" value=""  class="input-block-level" placeholder="Name" required/>

<input type="email" name="name" id="name" value=""  class="input-block-level" placeholder="Name" required/>

Upvotes: 0

Related Questions