2011-08-11 90 views
0

我正在運行wordpress,這是搜索。基本上,我將根據選中的複選框來設置帖子類型(如果它們已被選中,則會傳遞值1)。如果聲明工作不正常?

當我搜索我的網址時,包括job=1&opportunity=1&resource=1,並且我嘗試過使用和不使用引號的值,它根本不會輸出HELLO

$job = wp_specialchars(stripslashes($_GET["job"]), 1); 
$opportunity = wp_specialchars(stripslashes($_GET["opportunity"]), 1); 
$resource = wp_specialchars(stripslashes($_GET["resource"]), 1); 

if(($job == '1') && ($opportunity == '1') && (resource == '1')){ 
    echo 'HELLO'; 
}elseif($job == '1' && $opportunity == '1'){ 

}elseif($job == '1' && resource == '1'){ 

}elseif($opportunity == '1' && resource == '1'){ 

}elseif($job == '1'){ 

}elseif($opportunity == '1'){ 

}elseif($resource == '1'){ 

} 

此外,如果任何人都可以使這個更短/更多的語義if語句,通過一切手段,去爲它。

+1

基本調試第一 - 你可以做這三個變量的測試輸出是什麼顯示 –

+2

?在第一個,第三個和第四個條件中似乎在'resource'前面缺少一個'$',PHP會將其解釋爲「resource」==「1」',它總是'false' –

回答

1

如果上面的代碼粘貼再看看以下內容:

if(($job == '1') && ($opportunity == '1') && (resource == '1')){ 

resource should be $resource 


}elseif($opportunity == '1' && resource == '1'){ 

resource should be $resource 

你可能想嘗試這些,並再次執行(儘管錯誤可能與上面的代碼可以預期)。

+0

我猜我確實忘記了'$'。傻了我。謝謝! –

0
if(($job == '1') && ($opportunity == '1') && (resource == '1')){ 
               ^--missing a $ here 

}elseif($job == '1' && resource == '1'){ 
         ^--- and here 

}elseif($opportunity == '1' && resource == '1'){ 
           ^---and here too 
+0

我不能相信我錯過了3次...感謝您的注意!我一直在尋找代碼太久了,今天 –

+0

打開display_errors和bump提高警告級別,PHP通常會發出警告你會遇到一些未定義的常量,這讓你不得不在桌子上敲你頭。在開發過程中將警告/錯誤保持在最高水平是很好的做法,否則你會有一段時間找出錯誤 –

1

你似乎有一個錯字:

if(($job == '1') && ($opportunity == '1') && (resource == '1')){ 

$缺少resource

請確保您有錯誤報告打開(error_reporting(E_ALL); - 這個特殊的問題將拋出一個E_NOTICE級警告

+0

啊,我很傻。不能相信我錯過了那些!謝謝! –