【问题标题】:How can I prevent a form sending after refresh?如何防止刷新后发送表单?
【发布时间】:2014-03-02 23:47:56
【问题描述】:

我有一个问题 - 在我填写表格并单击提交后,它会发送我填写的信息,但是当我刷新页面时,信息会再次发送。我该如何预防?我的 php 代码如下所示:

<?php
function Form()
{
    if (isset($_POST['submit']))
    {
        $to = "Test@gmail.com";
        $name = $_POST['name'];
        $email = $_POST['email'];
        $text = $_POST['text'];
        $subject = $_POST['subject'];

        if (isset($_POST['name']) && !empty($_POST['name']) &&
            isset($_POST['email']) && !empty($_POST['email']) &&
            isset($_POST['text']) && !empty($_POST['text']) &&
            isset($_POST['subject']) && !empty($_POST['subject']) &&
            mail($to, $name, $email, $text, $subject))   
        {
            echo "<div class='success'>Message has been sent!</div>";
        }
        else
        {
        }
    }
}
?>

所以当一个人填写表格时,刷新页面后不应该重新发送信息。我怎样才能做到这一点?

【问题讨论】:

标签: php html forms contact


【解决方案1】:

正如 CBroe 所说,您需要添加到其他页面的重定向。

if ( isset($_POST['name']) &&    !empty($_POST['name']) &&
 isset($_POST['email']) &&   !empty($_POST['email']) &&
 isset($_POST['text']) &&    !empty($_POST['text']) &&
 isset($_POST['subject']) && !empty($_POST['subject']) &&
 mail($to, $name, $email, $text, $subject))   
{


header('Location:thankyou.php');
}

在thankyou.php上

<?php
   echo "Message has been sent!";  //or whatever.
 ?>

【讨论】:

    【解决方案2】:

    if ((isset($_POST['submit'])) &amp;&amp; (!empty($_POST['name'])))

    检查用户是否在其中一个字段中输入了内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 2018-02-16
      • 2021-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多