动态应用程序中的后退按钮

时间:2011-06-16 13:24:42

标签: php back-button

嗯,我的问题是标题所说的。 我已经构建了一个小应用程序(php + mysql)来测试我在电子商务环境中的技能 - 总共6页。

第1页后的每个页面都依赖于id来检索/保存数据。此ID通常作为页面之间的隐藏表单字段传递。

在每个页面的顶部,我有一个小脚本,用于检查选择的id是什么状态(实际上是2个检查...... a)用户是否已到达应用程序的最后一页/步骤b)如果付款很棒已完成此用户) - 如果这两个条件都有效,那么我将用户重定向到感谢页面,说明他的流程已经完成,他可以选择重新开始。

但是我在浏览器上按下后退按钮时出现问题。 点击后退按钮一次,效果很好 - 验证检查强制我在我的代码中实现了重定向。

但快速按下后退按钮2次或更多次,打破此脚本 - 导致我的数据库中丢失记录 - 在实时环境中这些将是购买。

所以我的问题是:我应该采取什么措施来防止复制/删除/覆盖应用程序中的数据记录的“回击用户”。 我正在寻找想法和策略。

2 个答案:

答案 0 :(得分:1)

检查用户是否可以访问任何页面上的感谢页面。您可以使用会话或将标志存储到数据库中来执行此操作。

如果完成结帐的用户已经向后移动了多个步骤,那么如果用户已经完成结账,您可以检查该页面 - 根据它做出反应。

答案 1 :(得分:0)

我不认为从帖子表单中的页面传递变量是个好主意。最有可能的是,您应该充分利用会话,路径和数据库。 我想说的是将所有信息保存在一个结构良好的数据库中,每一步都必须分开,这样你就可以随时返回任何步骤并从数据库加载该步骤信息而不会丢失或破坏任何内容。

由于是电子商务网站,您无法承担双重付款或错误,因为一个错误可能导致您失去该客户。

完成表单后,您可以在数据库中保存一个字段,并告诉其他脚本在完成后将客户端重定向到另一个页面。