如果输入了正确的电子邮件地址但未将结果发送到指定的$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.'">';
}
}
?>
答案 0 :(得分:1)
摘自mail()手册页:
如果邮件已成功接受投放,则返回TRUE,否则返回FALSE。
重要的是要注意,仅仅因为邮件被接受传递,并不意味着邮件实际上将到达预定目的地。
所以我认为您的代码很好但是您的邮件服务器存在问题。
答案 1 :(得分:0)
您是在本地服务器上开发的吗?是sendmail还是安装了某种SMTP服务?
您还没有列出脚本标记的脚本类型,这可能会导致某些浏览器不执行Javascript。当您运行PHP时,实际上会回显到页面?这应该可以指出问题所在。
答案 2 :(得分:0)
您应该在正文关闭标记之前添加代码,应首先加载DOM以执行您的js代码 或者尝试
if(1==1){
echo "<script>alert('Test');</script>";
}
如果警报无效,问题就在于代码的位置