我有以下代码:
function success()
{
if(!$this->referer(array('controller'=>'contact','action'=>'index')))
{
$this->redirect(array('controller'=>'contact','action'=>'index'));
}
}
我正在尝试检查用户是否已从索引操作访问了成功页面,如果没有,则将它们发送回索引方法,以便如果之前没有提交过某些数据,则无法查看成功页面关于索引行动。
它不起作用,因为用户仍然可以访问成功页面,即使他们没有首先访问索引页面...
有人可以帮忙吗?感谢
答案 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')))
编辑:更正了代码