【问题标题】:Referer in php-php中的引用者-
【发布时间】:2023-04-07 10:31:02
【问题描述】:

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

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

【问题讨论】:

    标签: php http-referer


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您提供有用的信息,您在两个按钮上添加变量是什么意思?你的意思是,在表单输入中将信息分配给任何变量。请你澄清一下。谢谢
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      根据要求编辑: 你可以做到没有形式, <button id="button1" onClick = "javascript:location = "page3.php?clicked_button=1"; />

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

      【讨论】:

      • 如何将参数添加到表单中的 get 数组中?你能以一种清楚的形式举一个例子吗?谢谢
      • 使用 get 参数存储会话数据是蹩脚的。
      • Yyy ?;D 为什么要涉及服务器和所有会话机制(start_session();$_SESSION 数组?而且,tah 变量以后不会有用...
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2010-09-30
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多