Cakephp检查referer是否来自本地URL

时间:2013-01-25 13:22:48

标签: cakephp if-statement cakephp-2.1 referer

我用Cakephp 2.1应用程序敲打了一下。

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

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

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

提前致谢

1 个答案:

答案 0 :(得分:1)

这里有一个逻辑错误:

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

将仅返回lightview布局

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

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

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

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