【问题标题】:Cakephp check if referer is from local urlCakephp 检查引用者是否来自本地 url
【发布时间】:2013-01-25 21:37:54
【问题描述】:

我的 Cakephp 2.1 应用程序有点吃力。

如果引用者来自外部 url,我想呈现不同的布局。可悲的是,这不起作用:

 if($this->referer(null, true))
     {
        $this->layout = 'lightview';
     }
     else 
     {
        $this->layout = 'default';
     }

有什么办法可以解决这个问题吗?

提前致谢

【问题讨论】:

    标签: cakephp if-statement cakephp-2.1 referer


    【解决方案1】:

    这里有一个逻辑错误:

    $this->referer(null, true) // true as second param: only internal
    

    只有在以下情况下才会返回 lightview 布局

    • 有一个引用者(并非总是如此)
    • 内部推荐人

    所以这可能不是你想要的。

    你不能轻易做到这一点。有时只是没有推荐人。 即使有,你可能仍然不知道这个人是否来自其他地方,只是“隐藏”了推荐人。或者然后浏览您的网站(从这里开始创建内部引荐来源网址)。

    您需要将首次访问时的初始结果存储在会话中,以便稍后进行检查。 但即便如此,您的方法也非常不一致,而且很可能会破坏......

    【讨论】:

    • 谢谢。我将改为使用 ajax 链接并检查请求是否为 ajax
    猜你喜欢
    • 2011-12-14
    • 2014-03-26
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多