Javascript 在提交带有“的”的表格后;邮政「;方法时,它要求重新发送信息

Javascript 在提交带有“的”的表格后;邮政「;方法时,它要求重新发送信息,javascript,php,html,Javascript,Php,Html,表格被提交。但在此之后,当我刷新它时,firefox会给出这样一条消息:“要显示此页面,firefox必须发送重复先前执行的任何操作(如搜索或订单确认)的信息。”并给出两个选项“重新发送”或“取消” 使用“GET”方法的表单不会发生这种情况 我的form.php代码如下所示 <html> <body> <form action="" method="POST" enctype="multipart/form-data"> <input type="fil

表格被提交。但在此之后,当我刷新它时,firefox会给出这样一条消息:“要显示此页面,firefox必须发送重复先前执行的任何操作(如搜索或订单确认)的信息。”并给出两个选项“重新发送”或“取消”

使用“GET”方法的表单不会发生这种情况

我的form.php代码如下所示

<html>
<body>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="Submit">
</form>
</body>
</html>

我想解决这个问题的办法在于“发布后重定向”(php)或form.reset()…(javascript)或HTML

我已经阅读了许多文章,但我无法实现它,因为有很多理论可用,但没有工作示例。
我希望你们和这个网站能帮助我。如果我在这方面取得成功,那将是我最大的成就。谢谢

是的,这是正常的。通常的做法是在使用php header()函数进行表单处理后,让页面重定向到自身:

header("Location: http://www.example.com/");

是的,这很正常。通常的做法是在使用php header()函数进行表单处理后,让页面重定向到自身:

header("Location: http://www.example.com/");

这是正常的浏览器行为。如果您不想这样做,只需在处理POST数据后将用户重定向到页面即可

您可以通过以下代码执行此操作:

header('Location: redirectpage.php');

请注意,这可能与您刚从的页面完全相同,但重定向后,POST容器将为空,因此您的浏览器不会提示您重新发送数据。

这是正常的浏览器行为。如果您不想这样做,只需在处理POST数据后将用户重定向到页面即可

您可以通过以下代码执行此操作:

header('Location: redirectpage.php');

请注意,这可能与您刚从的页面完全相同,但重定向后,POST容器将为空,因此您的浏览器不会提示您重新发送数据。

您必须执行以下操作:
标题(“位置:http://www.example.com/");
或者,如果您已经发送了标题,则可以执行以下操作:

//Complete response of sending form
<?php
echo "<meta http-equiv=\"refresh\" content=\"0; url=http://example.com/\"   />\n";
?>
//发送表单的完整响应
或者试试这个:

<script>
location.href = "youroriginalpage.php";
</script>

location.href=“youroriginalpage.php”;
或者做如下操作:

 <?php
 if( $_POST )
{
   if( empty($_POST['file']) )
 {
   // echo error or do nothing;
   die("Select a file to upload");
     }
   }
 ?>
 <html>
 <body>
 <form action="" method="POST" enctype="multipart/form-data">
 <input type="file" name="image">
 <input type="submit" value="Submit">
 </form>
 </body>
 </html> 

您必须执行如下操作:
标题(“位置:http://www.example.com/");
或者,如果您已经发送了标题,则可以执行以下操作:

//Complete response of sending form
<?php
echo "<meta http-equiv=\"refresh\" content=\"0; url=http://example.com/\"   />\n";
?>
//发送表单的完整响应
或者试试这个:

<script>
location.href = "youroriginalpage.php";
</script>

location.href=“youroriginalpage.php”;
或者做如下操作:

 <?php
 if( $_POST )
{
   if( empty($_POST['file']) )
 {
   // echo error or do nothing;
   die("Select a file to upload");
     }
   }
 ?>
 <html>
 <body>
 <form action="" method="POST" enctype="multipart/form-data">
 <input type="file" name="image">
 <input type="submit" value="Submit">
 </form>
 </body>
 </html> 

在使用“POST”方法提交表单后,当我刷新表单时,它会要求重新发送信息

这是正确的行为

我想解决这个问题的办法在于“发布后重定向”(php)或form.reset()…(javascript)或HTML

您必须按照以下步骤设计应用程序。基本上,您需要从POST表单接收数据的PHP脚本。脚本必须使用GET请求将浏览器重定向到同一个或另一个脚本。由于最后一个脚本是使用GET检索的,因此如果刷新页面,将不会收到消息,也不会再次提交数据

// For an script that shows the form and receives the data

// detect if it is received by POST
if (count($_POST)) {

  // process the file using a function 
  process_upload($_FILES["image"]);

  // redirect the browser to the same page
  header("Location: ".$_SERVER['PHP_SELF']);
  exit();
}
<html>
<body>
  <form action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="submit" value="Submit">
  </form>
</body>
</html>
//用于显示表单并接收数据的脚本
//检测是否通过邮寄方式收到
如果(计数($\邮政)){
//使用函数处理文件
处理上传($文件[“图像”]);
//将浏览器重定向到同一页
标题(“位置:“.$”服务器['PHP\u SELF']);
退出();
}
对于其他示例,您可以检查:

  • ,及
  • 在堆栈溢出中
在使用“POST”方法提交表单后,当我刷新表单时,它会要求重新发送信息

这是正确的行为

我想解决这个问题的办法在于“发布后重定向”(php)或form.reset()…(javascript)或HTML

您必须按照以下步骤设计应用程序。基本上,您需要从POST表单接收数据的PHP脚本。脚本必须使用GET请求将浏览器重定向到同一个或另一个脚本。由于最后一个脚本是使用GET检索的,因此如果刷新页面,将不会收到消息,也不会再次提交数据

// For an script that shows the form and receives the data

// detect if it is received by POST
if (count($_POST)) {

  // process the file using a function 
  process_upload($_FILES["image"]);

  // redirect the browser to the same page
  header("Location: ".$_SERVER['PHP_SELF']);
  exit();
}
<html>
<body>
  <form action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="submit" value="Submit">
  </form>
</body>
</html>
//用于显示表单并接收数据的脚本
//检测是否通过邮寄方式收到
如果(计数($\邮政)){
//使用函数处理文件
处理上传($文件[“图像”]);
//将浏览器重定向到同一页
标题(“位置:“.$”服务器['PHP\u SELF']);
退出();
}
对于其他示例,您可以检查:

  • ,及
  • 在堆栈溢出中
试试这个:

试试这个:


这是一种正常的浏览器行为。要避免这种情况,请打印重定向代码,例如:

<script>
location.href = "youroriginalpage.php";
</script>

location.href=“youroriginalpage.php”;
你需要让你的表单提交到一个页面,而不是与表单一起提交的页面,在我看来,这也是一个更好的方法


另一种方法是发送AJAX请求,这将使用户保持在同一页面上。

这是一种正常的浏览器行为。要避免这种情况,请打印重定向代码,例如:

<script>
location.href = "youroriginalpage.php";
</script>

location.href=“youroriginalpage.php”;
你需要让你的表单提交到一个页面,而不是与表单一起提交的页面,在我看来,这也是一个更好的方法

另一种方法是发送一个AJAX请求,这将使用户保持在同一页面上。

可以这样重新表述:

//Complete response of sending form
<?php
echo "<meta http-equiv=\"refresh\" content=\"0; url=http://example.com/\"   />\n";
?>
  • 从不在回复帖子时显示页面
  • 始终使用GET加载页面
  • 使用重定向从POST导航到GET
    • 可以这样重新表述:

      //Complete response of sending form
      <?php
      echo "<meta http-equiv=\"refresh\" content=\"0; url=http://example.com/\"   />\n";
      ?>
      
      • 从不在回复帖子时显示页面
      • 始终使用GET加载页面
      • 使用重定向从POST导航到GET

      刷新POST请求时会发生这种情况,这是完全正常的?我知道避免这种情况的唯一方法是:使用Ajax执行POST.Redirect