2016-11-22 35 views
0

我正在创建一个小杂志,其中有几个部分,都在相同的PHP页面上工作。PHP IF /或不工作

如果他们不在官方部分,我希望它将人员重定向回主页。因此,对于这个我的代码是:

<?php 
    if (isset($_GET["section"])) { 
     $section = $_GET["section"]; 
    } else { 
     header("Location: $site_url"); 
     exit(); 
    } 

    if ($section !== 'gallery' || $section !== 'magazine' || $section !== 'picks' || $section !== 'customs' || $section !== 'editor') { 
     header("Location: $site_url"); 
     exit(); 
    } 
?> 

的问题是,当我访问localhost/results.php?section=gallery,我重定向回主页,即使它是IF语句中。任何人都知道这是为什么?

+2

尝试取与你可能部分,而不是或运算他们.... PHP是做你告诉它该怎么做 –

+1

如果*这些测试中的任何一个*是真实的,你回到主页。其中几个将永远是真实的。 –

回答

1

这将始终是真实的:

$section !== 'gallery' || $section !== 'magazine' || ... 

因为同一个变量不能同时是一个以上的值。我怀疑你的意思是使用&&

$section !== 'gallery' && $section !== 'magazine' && ...