PHP表单发布/重定向/获取标头位置错误

时间:2017-09-10 17:40:15

标签: php html forms post-redirect-get

我有一个简单的表单,我帮助我学习php。我正在使用我的本地主机服务器来托管php文件(form.php)。但是,当我刷新页面时它重新提交表单,我知道我可以使用post / redirect / get方法来否定这个问题。除了实现标题('Location:form.php');没有工作,如果你可以看看代码 - 并告诉我我做错了什么,这将非常感激。

代码示例即没有标题('Location:form.php');

import random
l=[i for i in range(1,11)]
l.remove(5)
print random.choice(l)

这是结果......

  

没有标题位置的屏幕截图

enter image description here

然后我补充说:

<?php 
if (empty($_POST) === false) {
    echo '<pre>', print_r($_POST, true), '</pre>';
    }
?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Form</title>
  </head>
<body>

<form action="form.php" method="post">
  <p>
    <label for="name">Name:</label><br>
    <input type="text" name="name" id="name"><br>
  </p>
  <p>
    <label for="email">Email:</label><br>
    <input type="text" name="email" id="email"><br>
  </p>
  <p>
    <label for="message">Message:</label><br>
    <textarea name="message" id="message"></textarea>
  </p>
  <p>
    <input type="submit" value="submit">
  </p>
</form>

我明白了......

enter image description here

1 个答案:

答案 0 :(得分:0)

为防止表单在页面刷新时重新提交,使用了两种方法:

方法1:使用AJAX +重定向

使用AJAX提交表单,然后使用JQuery重定向到另一个页面。

方法2:重新加载页面

使用Javascript刷新页面。

您的代码应该是这样的:

    <?php 
        if (!empty($_POST)) {
            echo '<pre>', print_r($_POST, true), '</pre>';
            echo '<script type="text/javascript"> location.reload();</script>';
        }
    ?>

    <!DOCTYPE html>
    <html>
       <head>
         <meta charset="utf-8">
         <title>Form</title>
       </head>
       <body>

        <form action="form.php" method="post">
          <p>
            <label for="name">Name:</label><br>
            <input type="text" name="name" id="name"><br>
          </p>
          <p>
            <label for="email">Email:</label><br>
            <input type="text" name="email" id="email"><br>
          </p>
          <p>
            <label for="message">Message:</label><br>
            <textarea name="message" id="message"></textarea>
          </p>
          <p>
            <input type="submit" value="submit">
          </p>
        </form>
       </body>
    </html>