我有一个在 PHPMailer 的帮助下制作的联系页面。最小代码如下
<form class="form-horizontal" method="POST" action="Mail.php" name="contactForm">
...
</form>
这工作得很好,但是每当我尝试在网络服务器上显式打开 Mail.php 时,网络服务器blank
每次都会发送电子邮件。这是我每次访问 Mail.php 时的电子邮件截图
下面是 PHPMailer 的 Mail.php 中的最小代码
$mail->Subject = $subject;
$mail->Body = "<b>From: </b>". $sender. "<br>" ." <b>Name: </b>". $yourName. "<br>". "<b> Message Body </b>" .$message;
$mail->AltBody = "<b>From: </b>". $sender. "<br>" ." <b>Name: </b>". $yourName. "<br>". "<b> Message Body </b>" .$message;
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
}
else {
echo "Message has been sent....You're being redirected.....";
}
如何限制用户显式访问 Mail.php?
因此,正如 Jiri Hrazdil 和 Ahmad Mobaraki 所建议的那样,使用isset
应该可以解决我的问题,但我不知道如何实现。所以我想出了我自己的解决方案。我首先检查变量是否为空,因此如果有人直接尝试访问该文件,它将显示一条消息 the Fields are empty
,这就是我这样做的方式。
require 'PHPMailer/PHPMailerAutoload.php';
$yourName = $_POST['yourName'];
$sender = $_POST['emailID'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$to = '[email protected]';
header('Refresh: 5; URL=whatever.php');
if(empty($yourName) || empty($sender) || empty($subject) || empty($message) || empty($message))
{
echo "Fields are empty";
}
else
{
//Working Code of PHP Mailer
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句