2014-09-30 19 views
0

我嘗試使用filter_input(),並且出於某種原因,當我使用它時,它不會向瀏覽器回傳任何內容。使用filter_input()會導致PHP無法回顯

if (isset(filter_input(INPUT_POST, 'tag')) && !empty(filter_input(INPUT_POST, 'tag'))) 
{ 
    $tag = filter_input(INPUT_POST, 'tag'); 
} 
else 
{ 
    echo 'Nope'; 
} 

但是,當我使用$ _POST時,它的回聲不是。像這樣:

if (isset($_POST['tag']) && $_POST['tag'] != '') 

我試圖找到解決方案,但它似乎是我唯一一個有這個問題。

有誰知道我做錯了什麼?謝謝。

哦,順便說一句,它應該總是回聲「不」,因爲我沒有發送任何Post請求。

+0

'filter_input()'_「的名稱和可選的過濾器獲取特定外部變量它」_。 「if」塊頂部的'echo'語句在哪裏? 'filter_input()'不會爲你回顯... – War10ck 2014-09-30 00:45:28

+1

你不能在函數調用的結果上使用isset。除非錯誤輸出被禁用,否則您的代碼應該輸出錯誤。 – 2014-09-30 00:50:47

+1

只需使用if(filter_input(INPUT_POST,'tag'))' - 如果報錯了,就會拋出'致命錯誤:無法在第一行導致的寫上下文中使用函數返回值的代碼。 – 2014-09-30 00:54:32

回答

0

我的猜測是你的腳本沒有顯示錯誤,所以你不能調試它。

在腳本的開頭添加這樣的:

error_reporting(-1); 
ini_set('display_errors', 'On'); 

你的代碼應該看起來像:

if ($tag = filter_input(INPUT_POST, 'tag')) 
{ 
    // your code 
} 
else 
{ 
    echo 'Nope'; 
}