【问题标题】:PHP Mail/ validate script does not workPHP Mail/验证脚本不起作用
【发布时间】:2011-09-14 10:27:11
【问题描述】:

如果输入了正确的电子邮件地址,以下表格会显示“感谢您订阅新闻通讯”消息,但它不会将结果发送到指定的$to 地址。此外,如果电子邮件无效,则不会显示“请输入有效的电子邮件”消息。有人可以帮助一个 php noob 解决这些错误吗?谢谢

<?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.'">';
    }
}
?>

【问题讨论】:

    标签: php email validation mailer


    【解决方案1】:

    摘自mail()手册页:

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

    请务必注意,仅仅因为邮件被接受投递,并不意味着邮件实际上会到达预期目的地

    所以我想你的代码没问题,但是你的邮件服务器有问题。

    【讨论】:

      【解决方案2】:

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

      您还没有为您的脚本标签列出脚本类型,这可能会导致某些浏览器不执行 Javascript。当您运行 PHP 时,实际上会在页面上回显什么?这应该可以告诉您问题出在哪里。

      【讨论】:

        【解决方案3】:

        你应该在body关闭标签之前添加代码,应该首先加载DOM来执行你的js代码 或者试试

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

        如果警报不起作用,则问题出在代码的位置

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-01-27
          • 1970-01-01
          • 2011-09-18
          • 2014-03-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多