2016-11-22 59 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' && ...