【问题标题】:PHP - $_SERVER['HTTP_REFERER'] - how to store once, not again when a form submission occursPHP - $_SERVER['HTTP_REFERER'] - 如何存储一次,而不是在表单提交时再次存储
【发布时间】:2013-07-13 04:01:41
【问题描述】:

在 PHP 中,我将如何存储变量“backurl”? (在底部检索如下 - 当需要应用以下约束时)

  • 变量“backurl”存储上次查看的 php 脚本。
  • 第一次执行时,变量“backurl”被存储并正常工作
  • 当通过该脚本中的 $_GET 或 $_POST 提交表单时,该变量将随着先前 URL 的更改而更新。 (我不希望这种情况发生)

即 从 -> 到(实际结果 - 期望结果)
page1.php -> page2.php(链接到 page1.php - 如预期)
page2.php -> page2.php?test=yes(链接到 page2.php - 我希望它返回到 page1.php)

如果有人对如何做到这一点有任何建议,非常感谢!

$backurl =  $_SERVER['HTTP_REFERER'];

【问题讨论】:

    标签: php referer


    【解决方案1】:

    你可以使用会话

    <?php
    
    session_start();
    if(!isset($_SESSION['backurl'])){
    $_SESSION['backurl'] = $_SERVER['HTTP_REFERER'];
    }
    ?>
    $_SESSION['backurl']; //contains the back url;
    

    如果您需要取消设置反向链接:

    unset($_SESSION['backurl']);
    

    【讨论】:

    • 非常感谢!我会投票给你,但我需要 15 个代表点才能这样做! :(
    【解决方案2】:

    session 中设置backurl 并在page2.php

    中随时随地访问它

    【讨论】:

      【解决方案3】:

      有几种方法可以做到这一点。仅当脚本页面不同时,才可以使用会话更新您的反向链接。

      例如(未经测试):

      session_start();
      
      if( $_SEVER['SCRIPT_NAME'] != $_SESSION['lastpage'] ){
          $_SESSION['backurl'] = $_SERVER['REQUEST_URI'];
      }
      

      这样,当你调用不同的php页面时,你只会更新backurl,当你使用不同的参数进入同一个页面时,它保持不变(基于你的例子)。

      根据您的需要调整代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-09
        • 1970-01-01
        • 1970-01-01
        • 2020-08-04
        • 1970-01-01
        • 2015-01-16
        • 1970-01-01
        相关资源
        最近更新 更多