电子邮件验证器问题 - 将它们放在一起

时间:2013-06-17 20:56:39

标签: php validation email

我对PHP编码很新。 我做了很多研究试图帮助我。你可以想象我已经获得了的材料来寻求帮助。问题是当我试图将它们放在一起时。

具体来说,这是我的问题。我遇到过:

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "e-Mail is Valid";
} else {
    echo "Invalid e-Mail";
}

但我不知道如何实现它。现在,验证者在用户有时间将它们投入之前检查字段.....我很绝望

我确信这个解决方案非常简单,但我花了好几个小时才真正迫切需要解决这个问题。

以下是page

的链接

以下是该页面的代码:

<!DOCTYPE html>
<head>
<meta charset='utf-8'> 
<title>AWalsh Photography - Contact Me</title>
<link href="style/main_page.css" rel="stylesheet" type="text/css" />
</head>
<body>

<div id="email_container">
      <h1 class="email_head"> Contact Andrew walsh Photography</h1>
      <form id="email_form" name="email_form" method="post">
      <table>
    <tr>
    <td><label for="fname">First Name:</label>
    </td>
    <td><input type="text" name="fname_input" id="fname_input" /><br>
    </td>
    </tr>
     <tr>
    <td><label for="lname">Last Name:</label>
    </td>
    <td><input type="text" name="lname_input" id="lname_input" /><br>
    </td>
    </tr>
    <tr>
    <td><label for="email_input">Your Email:</label>
    </td>
    <td><input type="text" name="email_input" id="email_input" /><br>
    </td>
    </tr><tr>



    <td><label for="email_conf">Re-enter Email:</label>
    </td>
    <td><input type="text" name="email_conf" id="email_conf" /><br>
    </td>
    </tr><tr>
    <td>
    <label for="message_input">Message </label>
    </td><td>
    <textarea rows="8" cols="45" id="message_input" name="message_input"></textarea>
    </td></tr><tr><td></td>
    <td>
    <input id="submit"type="submit" value="submit" name="submit"/>        
    </td></tr>
    </table>
    </form>

<?php 

if($_POST['email_imput'] == $_POST['email_conf']){
    //stuff to do on success
    echo '<h1>Success!!</h1>';
} else {
    //stuff to do on failure
    echo '<h1>Sorry, The emails you entered do not match</h1>';
}


    $email_imput = $_POST['email_imput'];

if (filter_var($email_imput, FILTER_VALIDATE_EMAIL)) {
    echo $email_imput . ' is a valid email address.';
} else {
    echo $email_imput . ' is not a valid email address.';
}

$message_imput = $_POST['message_imput'];

$msg = "Email address: $email_imput \n" . "Message: $message_imput";

$to = 'myemail@gmail.com ';

$subject = 'AWP_email';



if (filter_var($email_imput)){

mail($to, $subject, $msg, $email);
}
if (mail($to, $subject, $msg, $email)) {
   echo("<p>Message successfully sent! Thanks for submitting your message. We will reply to you as soon as possible</p>");
  } else {
   echo("<h1>Sorry, There was an error in your imput. Please try again.</h1>");
  }

?>  
<span class="error"><?=$error;?></span>
<form method="post" action="">
    <h1> There was an error with your post</h1>
</form>     

</div>



</div>

</body>
</html>

任何输入都会很棒。谢谢。

2 个答案:

答案 0 :(得分:0)

您可以在表单中添加隐藏字段,并在发送电子邮件时检查其值。

if (isset($_POST["some_hidden_field"])) {
    // put form validation and sending email here
}
else {
    // print the form
}

答案 1 :(得分:0)

您应首先检查页面是否已提交。您可能需要在进行任何验证之前尝试if ($_SERVER['METHOD'] == 'POST')