【问题标题】:php email sender code dose not work properly [duplicate]php电子邮件发件人代码无法正常工作[重复]
【发布时间】:2015-02-12 18:58:50
【问题描述】:

你能告诉任何人我的代码有什么错误吗?此代码工作正常,但我第一次在将消息发送到我的电子邮件后单击发送按钮。但第二次我不需要单击发送按钮,只需刷新我的页面,然后将消息自动发送到我的电子邮件。有什么问题?

if(isset($_POST['send'])) { 

$name = $_POST['fname'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$interested = $_POST['interested'];
$message = $_POST['message'];
if(!empty($name) && !empty($email) && !empty($message) )

{
        $from="From: $name<$email>\r\nReturn-path: $email"; 
        $subject="Regoora Message Center"; 
         $message1 = "Customer Name :".$name."
                    Customer Email :".$email." 
                    Customer Phone :".$phone." 
                    Customer interested :".$interested ." 
                    Customer message :".$message." ";
        mail("email@example.com",$subject,$message1); 
        $mess = "Successfully sent your inquiry";
    }
    else{



$mess = 'We are sorry, but there appears to be a problem with the form you submitted.';     




}}

【问题讨论】:

  • 使用带有命名提交按钮的条件语句并使用标题进行重定向。另外,$from 是一个杂散变量,因此请将其添加到您的标题中。
  • 这里 => php.net/manual/en/function.header.php 此外,您还可以使用会话和令牌来防止重新提交。

标签: php email post sender


【解决方案1】:

如果您的代码第一次运行正常,那是因为它运行良好。您第二次刷新页面时,它又发送了另一封电子邮件,因为“刷新”将始终重复您的上一个操作。如果您最后的操作是“发送电子邮件”,则刷新页面将尝试重新发送电子邮件。

您可以做的就是在发送后点击地址栏 (http://localhost/xxxx) 并按回车键。它将重置页面。

【讨论】:

  • 除了 OP 以外的其他人呢?他们不会遵循这一点。这行不通。
  • 您有很多选择可以避免人们重新发送电子邮件。第一个选项是在发送电子邮件后执行unset($_POST['send']);。第二种选择是将用户重定向到另一个页面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-22
  • 2012-07-12
  • 1970-01-01
  • 2013-06-29
  • 2013-04-19
相关资源
最近更新 更多