PHP邮件/验证脚本不起作用

时间:2011-09-14 10:27:11

标签: php email validation mailer

如果输入了正确的电子邮件地址但未将结果发送到指定的$to地址,则以下表单会显示“感谢您订阅时事通讯”的消息。此外,如果电子邮件无效,则“请输入有效的电子邮件”消息不会显示。有人可以帮助这些错误的PHP菜鸟吗?感谢

<?php
$email   = $_POST['email'];
$to      = "reb3qb13b@gmail.com";
$subject = "ADD THIS EMAIL ADDRESS TO THE MAILING LIST";
$body    = "\n\n";
$url     = 'http://10.0.1.3/~143b1';

if (! filter_var($email, FILTER_VALIDATE_EMAIL))
{
    echo '<script> alert("PLEASE ENTER A VALID EMAIL ADDRESS") </script>';
    echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
}
else
{
    if (mail($to, $subject, $body)) 
    {
        echo '<script> alert("THANK YOU FOR SUBSCRIBING TO THE NEWSLETTER") </script>';
        echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
    } 
    else 
    {
        echo '<script> alert("THERE WAS AN UNEXPECTED ERROR. PLEASE TRY AGAIN LATER") </script>';
        echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
    }
}
?>

3 个答案:

答案 0 :(得分:1)

摘自mail()手册页:

  

如果邮件已成功接受投放,则返回TRUE,否则返回FALSE。

     

重要的是要注意,仅仅因为邮件被接受传递,并不意味着邮件实际上将到达预定目的地

所以我认为您的代码很好但是您的邮件服务器存在问题。

答案 1 :(得分:0)

您是在本地服务器上开发的吗?是sendmail还是安装了某种SMTP服务?

您还没有列出脚本标记的脚本类型,这可能会导致某些浏览器不执行Javascript。当您运行PHP时,实际上会回显到页面?这应该可以指出问题所在。

答案 2 :(得分:0)

您应该在正文关闭标记之前添加代码,应首先加载DOM以执行您的js代码 或者尝试

if(1==1){
    echo "<script>alert('Test');</script>";
}

如果警报无效,问题就在于代码的位置