php中的Referer

时间:2009-10-18 11:19:14

标签: php http-referer

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

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

4 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

答案 2 :(得分: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) ...

答案 3 :(得分:0)

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