0

执行以下操作的最佳方法是什么:我的页面 A 有 2 个按钮(用于不同的事情),它们都将您带到登录页面(第 3 页),当登录详细信息填写在第 3 页时,处理数据的页面是第 4 页。我希望第 4 页显示取决于在页面 a 中单击了哪个按钮的内容。我已经阅读了 http referer,但我相信如果我在第 4 页放置一个referer,它将显示我来自的上一个页面,即登录。

我该如何解决这个问题?谢谢

4

4 回答 4

2

引用者并不总是由浏览器发送,并且可以被伪造(并且,在这种情况下,由于两个按钮都在同一页面上,这将是无用的);因此,您不应依赖于它的设置或正确性。

在这种情况下,可能的解决方案是:

  • 在 A 页上,在两个按钮上添加一些变量
    • 喜欢“ page_login.php?button=1
    • 和“ page_login.php?button=2
  • 页面登录将接收该变量(即$_GET['button']),并将其存储在表单的隐藏字段中
  • 反过来,第 4 页将接收该变量;您可以使用它来了解第一次使用哪个按钮。
于 2009-10-18T11:25:09.543 回答
2

使用会话变量,例如$_SESSION['clicked_button'] = $the_button.

于 2009-10-18T11:29:46.167 回答
1

http-refferer 不是最好的解决方案。最简单的方法是在 GET 数组中添加一些参数,例如?clicked_button=2 Http-refferer 可以关闭。此外,referer 将显示该按钮的相同 url(它们都在一个页面中)

应要求编辑:您可以在没有表格的情况下进行, <button id="button1" onClick = "javascript:location = "page3.php?clicked_button=1"; />

并在中page3.php读取值$_GET['clicked_button']if($_GET['clicked_button'] == 1) ...

于 2009-10-18T11:23:14.717 回答
0

如果这些变量不存在,请记住在任何情况下都有一个默认值,即用户干扰您的表单......但您应该使用方法来防止这种情况;)

于 2009-10-18T14:09:48.593 回答