(php)在任何数据库事务之后,如何使上一页过期?

(php)在任何数据库事务之后,如何使上一页过期?,php,Php,我正在PHP页面中保存个人信息。当用户单击“提交”时,它会保存,但用户可以通过浏览器的“返回”按钮返回“提交信息”页面。我可以使上一页过期吗,您应该读取该隐藏字段的值并将其存储在会话中,并在上一页检查是否设置了会话,将用户重定向到其他位置。您可以使用: session_destroy(); 或者你可以把这个放在页面的顶部。当用户回击时,它将请求页面的新副本: <?php header("Cache-Control: no-cache, must-revalidate"); he

我正在PHP页面中保存个人信息。当用户单击“提交”时,它会保存,但用户可以通过浏览器的“返回”按钮返回“提交信息”页面。我可以使上一页过期吗,您应该读取该隐藏字段的值并将其存储在会话中,并在上一页检查是否设置了会话,将用户重定向到其他位置。

您可以使用:

   session_destroy();
或者你可以把这个放在页面的顶部。当用户回击时,它将请求页面的新副本:

<?php 
header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Sat, 07 June 1982 09:00:00 GMT"); // Past date 
?> 

只需让用户在整个过程中保持在同一页面上即可。 所以,根本没有页面可以返回


他们称之为模式。非常方便。

为了防止用户通过使用“后退”按钮重新提交表单或刷新页面,您需要遵循名为的设计模式。

停留在同一页面上不会解决问题,也不是post/redirect/get模式的一部分。模式的重要部分是执行重定向,而不是重定向到哪里。@Mat停留在同一页面上有助于防止返回按钮。在使用2页设置进行文章后重定向时,不能阻止用户返回并再次按下提交按钮。停留在同一页上不会产生任何效果。用户只需返回一页,然后再向前一页,他们就触发了重新提交。再一次;阻止重新提交的是重定向本身,而不是重定向的目标。你链接到的页面上的图表非常清楚。不要粗鲁;这很幼稚。我最初的观点是a)你的第一句话是错误的;仅仅让用户停留在同一页面不会阻止重新提交,并且b)PRG模式并不要求您重定向到同一页面。这两点仍然存在。我相信你知道你想说什么,但与其和我争吵,为什么不编辑你的答案以使你的观点更清楚?这不会阻止通过“后退”按钮或页面刷新重新提交表单。从技术上讲,这是可行的,但在现实中并不实用。您需要为站点上的每个表单创建和跟踪不同的隐藏字段值。但更重要的是,此方法将防止用户在同一会话中两次提交同一表单。我想您可能会在某个时候使会话值过期,但一旦过期,用户就可以再次通过“后退”按钮重新提交。@Col.Shrapnel Relax。我对您自己答案的评论显然得到了您的支持,但是为什么不使用PRG实现一个表单,然后删除重定向呢?你很快就会发现我不是白痴。在回答你的评论时;这意味着PRG无法阻止用户手动导航回a表单并重新提交相同的数据……您仍然不明白问题是“如何阻止用户手动导航回a表单并重新提交相同的数据”。真可怜,这是我最后一次回应,因为它现在变得愚蠢了。问题是:如何阻止用户通过后退按钮提交页面?答案是:PRG。你可以用你建议的方式来解释它,为此,我建议OP回来编辑这个问题,让它更清楚。恕我直言,我不明白为什么你如此强烈地需要证明我是错的,因为我们的答案基本上是一样的……你只是把后退按钮和刷新按钮弄糟了:)如果没有手动导航,你就无法重新提交带有后退按钮的表单。这在问题中是隐含的。手动导航。拒绝它,你就根本拒绝回答这个问题。你没有大脑去理解它,或者只是去区分两页的设置和单页的设置;后退按钮和刷新按钮都可以重新提交表单。当我说PRG不能防止通过手动导航提交表单时,我的意思是它不能阻止在两个单独的场合使用相同的数据同时提交相同的表单。你仍然会被提交过程使用的页面数量所困扰,这没有任何区别。是的,我知道我说过我之前的评论是我最后的评论,但是我…:)这个问题有点不清楚。是否要阻止用户在提交信息并重新提交后点击“重新加载”,还是要阻止用户提交同一表单两次(使用不同的数据)