0

我正在使用 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 代码被多次调用,但为什么呢?谢谢。

4

0 回答 0