来自多个推荐人的路线保护 - Laravel

时间:2016-01-07 15:02:42

标签: php laravel laravel-5

我试图保护route如果没有从特定页面访问,并且下面的代码片段不能按预期工作;

$referer = Request::header('referer');

if ($referer != "http://www.xxx.co.uk/login" || $referer != "http://www.xxx.co.uk/signup") {
    return redirect()->route('/');
}

我的if语句出错了,因为下面有效;

$referer = Request::header('referer');

if ($referer != "http://www.xxx.co.uk/login") {
    return redirect()->route('/');
}

不同之处在于我删除了or部分。 但如果不同时从paths访问,我需要它受到保护。 另外添加另一个else if语句也会打破它

2 个答案:

答案 0 :(得分:1)

您必须使用&& 运算符代替 ||

在你的情况下,使用||,当一个条件是假的时候,另一个条件是真的,所以你的语句将一直执行。

答案 1 :(得分:0)

一般布尔逻辑:

(!A) || (!B) === !(A && B)

所以你的第一个条件实际上是:

!($referer == "http://www.xxx.co.uk/login" && $referer == "http://www.xxx.co.uk/signup")

总是如此,因为引用者无法同时匹配两个URL。相应地修正你的逻辑