0

如果输入了正确的电子邮件地址,以下表格会显示“感谢您订阅新闻通讯”的消息,但它不会将结果发送到指定的$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.'">';
    }
}
?>
4

3 回答 3

1

摘自mail()手册页:

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

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

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

于 2011-09-14T10:32:50.260 回答
0

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

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

于 2011-09-14T10:32:39.057 回答
0

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

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

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

于 2016-12-10T20:44:31.483 回答