我正在使用 PHP 根据 MySQL 数据和当前时间预加载 PHP 表单。用户从列表中选择姓名并输入他们的电子邮件,如果他们想要确认电子邮件。表单的其余部分是一组列表和单选按钮。在提交单击时,将调用以下 PHP:
<HTML>
<HEAD>
<TITLE>Confirmation</TITLE>
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
//session_start();
//if(isset($_SESSION['run']))
//{
// exit();
//}
$today = getdate();
$d = $today['mday'];
$m = $today['mon'];
$y = $today['year'];
$h = $today['hours'];
$n = $today['minutes'];
$now = $y . "-" . $m . "-" . $d. " " . $h . ":" . $n . "";
$sent = False;
$Week = $_GET["Week"];
//Exit if user did not identify themself
If(isset($_GET["User"]))
{
$User = $_GET["User"];
If($User == 0)
{
Header("Location: myform.php?try=1");
exit;
}
}
Else
{
Header("Location: myform.php?try=1");
exit;
}
$To = $_GET["to"];
If(isset($_GET["from"]))
{
$From = $_GET["from"];
}
Else
{
$From = "";
}
// Connect to database server
//Big Block of Code that Queries Database, Inserts records in database and
//creates HTML and Text strings
If($From <> "")
{
$Efrom = "-f <" . $From . ">";
$HFrom = $From;
}
Else
{
$Efrom = "-f <" . $To . ">";
$HFrom = $To;
}
$headers = "From:" . $HFrom . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
If($sent != True)
{
mail($To,"Weekly Picks for " . $User, $HTML . "<br />" . $strText ,$headers, $Efrom);
If($From <> "")
{
mail($From,"Weekly Reports" . $User, $HTML . "<br />" . $strText ,$headers, $Efrom);
}
$sent = True;
}
//$_SESSION['run'] = "Ran";
// Close the database connection
mysql_close();
?>
<BODY background="mybackground.jpg" TEXT="black" >
<?php echo $HTML; ?>
<center><h3><a href="http://www.myhome.html">Return Home</a></h3></center>
</BODY></HTML>
问题是电子邮件被发送了大约 4 次,每次大约相隔 1 - 2 分钟。$now 变量是作为电子邮件主题的 HTML 和文本字符串($HTML、$strText)的一部分。$now 变量将每封电子邮件增加 1 - 2 分钟。$_SESSION['run'] 和 $sent 变量是为了避免问题而实施的黑客攻击。$strText 只是 $HTML 的纯文本版本,以防 $HTML 未在用户或我的浏览器中呈现。
显然 PHP 代码被多次调用,但为什么呢?谢谢。