【发布时间】:2023-04-10 23:47:02
【问题描述】:
我做了一个小系统来注册一个活动。这一切都像一个魅力,正是我想要的方式。但是当我今天突然检查它时,人们在注册活动后收到的确认电子邮件不再发送了。一切都以与以前相同的方式工作,但只是不再发送邮件。我在我的代码中添加了一些东西,然后它就不再发送了。
我添加了(!filter_var($email, FILTER_VALIDATE_EMAIL) 以验证电子邮件地址的格式是否正确。因此,如果电子邮件不正确或由于任何其他原因未发送邮件,您将被重定向到 fail.html。否则,您将被重定向到 succes.html。在重做更改并仔细检查所有内容后,我只是无法找到问题所在.. 谁能告诉我代码有什么问题?
<?php
$connect=mysqli_connect('xxxx','xxxxx','xxxxx','xxxxxx');
if(mysqli_connect_errno($connect))
{
echo 'Failed to connect';
}
// create a variable
$naam=$_POST['naam'];
$email=$_POST['email'];
$club=$_POST['club'];
$eten=$_POST['eten'];
$moment=$_POST['moment'];
$slapen=$_POST['slapen'];
$acro=$_POST['acro'];
$opmerkingen=$_POST['opmerkingen'];
$datum=$_POST['datum'];
$dateTime = new DateTime("now", new DateTimeZone('Europe/Brussels'));
$mysqldate = $dateTime->format("d-m-Y H:i:s");
//Execute the query
mysqli_query($connect,"INSERT INTO registered (`naam`,`email`,`club`,`eten`,`moment`,`slapen`,`acro`,`opmerkingen`) VALUES('$naam','$email','$club','$eten','$moment','$moment','$acro','$opmerkingen')");
//Mail sending function
$subject = 'Bevestiging inschrijving JWDW van ' . htmlspecialchars($_POST["naam"]);
$to = $_POST['email'];
$from = "xxxxxxx@hotmail.com";
//data
$msg = "<html>
<body>
xxxxxxxxxx
</center>
</body>
</html>";
//Headers
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: <".$from. ">" ;
mail($to,$subject,$msg,$headers);
echo "Verwerken...";
if (!filter_var($email, FILTER_VALIDATE_EMAIL)or(mysqli_affected_rows($connect) < 0)){
echo '<script type="text/javascript">
window.location = "fail.html"
</script>';
echo mysqli_error ($connect);
} elseif (mysqli_affected_rows($connect) > 0){
echo '<script type="text/javascript">
window.location = "succes.html"
</script>';
}
?>
提前致谢!
塞内
【问题讨论】:
-
所以删除代码更改,然后它会再次工作吗?
-
为什么还要向浏览器发送javascript告诉它从服务器重定向到另一个页面?使用php代码
header('Location: fail.html') -
在将电子邮件存储到数据库之前以及尝试使用它发送电子邮件之前,您也不应该检查电子邮件的有效性。
-
您需要对 cmets 更加敏感。问完你的问题后你不应该走开,因为你不能对问题和cmets做出反应。当你回来时,你接受帮助的窗口已经缩小或消失了。
-
@JohnConde,在评论中写下所有建议会让他无法阅读。这就是为什么我将其发布为答案。在他提供更多信息后,我可以对其进行编辑并更新我的答案。这就是我试图通过发布我的建议来解决问题的方法,作为答案。无论如何,既然你指出,我正在删除我的答案。谢谢