【问题标题】:Pass original http_referer to other pages将原始 http_referer 传递给其他页面
【发布时间】:2012-12-29 08:55:32
【问题描述】:

我的企业资料设置有单独的图库页面。这些页面的标题是一个 php 包含。

我正在尝试为此配置文件设置面包屑路径,因此我使用 http_referer 来跟踪我来自哪个列表页面。

if ($title == 'Business Profile'){
session_start();
$referer = $_SERVER['HTTP_REFERER'];
}
?>

我遇到的问题是将 http_referer 作为变量从业务资料传递到图库页面。我将如何做到这一点,以便我可以从业务资料和图库链接回列表页面?如果我在图库页面上使用 http_referer,它只会带我回到我来自的个人资料。

【问题讨论】:

    标签: php navigation breadcrumbs http-referer


    【解决方案1】:

    你可以使用cookies吗?例如在您的目标网页上;

    if(!isset($_COOKIE['HTTP_REFERER']))
    {
        $expiryTime = time()+(60*60*24); // Set to expire after 1 day
        setcookie('HTTP_REFERER',$_SERVER['HTTP_REFERER'],$expiryTime,'/');
    }
    

    然后在所有其他页面上,您可以检测是否已设置 cookie;

    if(isset($_COOKIE['HTTP_REFERER']))
    {
        $referer = $_COOKIE['HTTP_REFERER'];
    }
    

    【讨论】:

    • 这看起来很有趣,谢谢斯图。我现在就试一试。
    【解决方案2】:

    1) 我应该检查一下引用地址是否来自我的服务器。

    2) 如果没有,您可以将其保存到会话或 cookie。

    3) 终于可以随心所欲的使用了;

    <?php
    session_start();
    if(strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])===FALSE){
        $_SESSION['refererPage']= $_SERVER['HTTP_REFERER'];
        // or set cookie by Stu
    }
    ?>
    

    使用例如。

    <?php
    if(!empty($_SESSION['refererPage']))
        echo '<a href="'.$_SESSION['refererPage'].'">Back</a>';
    ?>
    

    【讨论】:

    • 感谢您的意见。我正在尝试使用 http_referer 从我的列表页面创建内部面包屑。根据不同的搜索方法,有 4 种类型的列表,所以服务器应该始终是我的服务器。理想情况下,如果服务器“是”我的服务器,因为我不希望面包屑将我带回另一个站点,例如。 google 谢谢你,虽然你的回答很有帮助。
    猜你喜欢
    • 2014-08-25
    • 2014-03-23
    • 2016-09-04
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 2016-06-06
    相关资源
    最近更新 更多