CakePHP检查引用

时间:2011-07-24 09:47:29

标签: php cakephp

我有以下代码:

function success()
    {
        if(!$this->referer(array('controller'=>'contact','action'=>'index')))
        {
            $this->redirect(array('controller'=>'contact','action'=>'index'));
        }
    }

我正在尝试检查用户是否已从索引操作访问了成功页面,如果没有,则将它们发送回索引方法,以便如果之前没有提交过某些数据,则无法查看成功页面关于索引行动。

它不起作用,因为用户仍然可以访问成功页面,即使他们没有首先访问索引页面...

有人可以帮忙吗?感谢

3 个答案:

答案 0 :(得分:3)

function success()
{
    if($this->referer() != Router::url(array('controller'=>'contact','action'=>'index')))
    {
        $this->redirect(array('controller'=>'contact','action'=>'index'));
    }
}

答案 1 :(得分:3)

尝试在Router :: url的末尾添加 true ,函数获取完整的网址:

if($this->referer() != Router::url(array('controller'=>'contact','action'=>'index'),true))

答案 2 :(得分:1)

我想这不会那样。您现在只需使用该代码设置默认引用。尝试类似:

if($this->referer() != Router::url(array('controller'=>'contact','action'=>'index')))

编辑:更正了代码