执行以下操作的最佳方法是什么:我的页面 A 有 2 个按钮(用于不同的事情),它们都将您带到登录页面(第 3 页),当登录详细信息填写在第 3 页时,处理数据的页面是第 4 页。我希望第 4 页显示取决于在页面 a 中单击了哪个按钮的内容。我已经阅读了 http referer,但我相信如果我在第 4 页放置一个referer,它将显示我来自的上一个页面,即登录。
我该如何解决这个问题?谢谢
执行以下操作的最佳方法是什么:我的页面 A 有 2 个按钮(用于不同的事情),它们都将您带到登录页面(第 3 页),当登录详细信息填写在第 3 页时,处理数据的页面是第 4 页。我希望第 4 页显示取决于在页面 a 中单击了哪个按钮的内容。我已经阅读了 http referer,但我相信如果我在第 4 页放置一个referer,它将显示我来自的上一个页面,即登录。
我该如何解决这个问题?谢谢
引用者并不总是由浏览器发送,并且可以被伪造(并且,在这种情况下,由于两个按钮都在同一页面上,这将是无用的);因此,您不应依赖于它的设置或正确性。
在这种情况下,可能的解决方案是:
page_login.php?button=1
”page_login.php?button=2
”$_GET['button']
),并将其存储在表单的隐藏字段中使用会话变量,例如$_SESSION['clicked_button'] = $the_button
.
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) ...
如果这些变量不存在,请记住在任何情况下都有一个默认值,即用户干扰您的表单......但您应该使用方法来防止这种情况;)