Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用不同的时间戳多次发送PHP邮件_Php_Email - Fatal编程技术网

使用不同的时间戳多次发送PHP邮件

使用不同的时间戳多次发送PHP邮件,php,email,Php,Email,我使用PHP预加载基于MySQL数据和当前时间的PHP表单。如果用户需要确认电子邮件,则从列表中选择姓名并输入其电子邮件。表单的其余部分是一组列表和单选按钮。单击“提交”后,将调用以下PHP: <HTML> <HEAD> <TITLE>Confirmation</TITLE> <?php error_reporting(E_ALL); ini_set('display_errors', '1');

我使用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分钟。$_会话['run']和$sent变量是为避免问题而实施的黑客攻击$strText只是$HTML的纯文本版本,以防$HTML不能在用户或我的浏览器中呈现


显然PHP代码被多次调用,但是为什么呢?谢谢。

您如何称呼此页面?你能为它添加PHP吗?它是否直接作为
的动作属性调用?是否包含在另一页中?是否使用
header()
调用到达此处?它被称为表单的action属性。我不使用Header()调用到达这里。在000webhost.com上托管。在这种情况下,仅当您单击“提交”时才应调用它。我能想到的唯一一件事是,您正在控制是否使用
$sent
变量发送电子邮件,但这不会产生任何效果-当此代码运行时,它将始终设置为False。因此,每次调用此页面并通过验证时,都会发送一封电子邮件。确切地说,发送的美元是一次黑客攻击。不管有没有$sent,不管有没有$u会话['run']变量,它仍然会发送大约4次电子邮件。它是否每1-2分钟“重新”验证一次页面(从而执行PHP)?它不应该是-它应该只在调用时运行;如果它是表单的动作,这意味着只有当有人点击提交按钮时才应该调用它。一旦我点击提交,我的电子邮件就不会再发送了。