2012-09-17 133 views
0

可能重複:
Check whether $_POST-value is empty

我使用這個代碼來驗證,如果通過輸入不爲空,但是當我在輸入上使用「白空間」失敗。它確實通過了空()檢查。

if (empty($_POST['r_user'])) { 
    $data['error'] = 'Please pick a username to continue.'; 
    $data['errorID'] = 'r_user'; 
} 

在PHP中檢查空字符串的正確方法是什麼?

回答

4

在檢查變量之前,您需要使用trim function

$trimUser= trim ($_POST['r_user']); 

現在執行空方法。

0

您可以使用trim這裏很好,它消除空白正面和背面:

if (empty(trim($_POST['r_user']))) { // Incorrect! 

編輯,哇,學到了新的東西今天。

然而,這將工作:

$var=trim($_POST['r_user']); 
if (empty($var)) { 

工作實例:

<?php 
    $var=' '; 
    $var=trim($var); 
    if(empty($var)) 
     echo "Yay"; 
    else 
     echo "Nay!"; 

?> 

輸出:

+1

PHP文檔警告'empty(trim())'會產生錯誤。 – Alex

+0

http://codepad.org/7QuJPRrF - 產生一個錯誤。必須先修剪它,然後檢查它是否爲空。 – Travesty3

+0

它在這裏產生一個錯誤。 –

1

可以trim()重從字符串

工作示例的開頭和結尾移動空格

 $test = "  "; 
     if(trim($test)){ 
     if (empty($test)) 
      echo "true"; 
     else 
      echo "false"; 
     } 

現場:檢查這對codepad

2

PHP documentation建議,您的代碼將變成:

if (trim($_POST['r_user']) == false) { 
    $data['error'] = 'Please pick a username to continue.'; 
    $data['errorID'] = 'r_user'; 
} 
0
if (empty(trim($_POST['r_user']))) { 

//錯!給出了一個錯誤 - 學到新的東西:) //正確的做法應該是:

$myvar = trim($_POST['r_user']); 

if (empty($myvar)) { 

if (trim($_POST['r_user']) != '') { 
+0

http://php.net/manual/en/function.empty.php指定空(trim())會產生一個錯誤。 – Alex

+0

我懷疑你使用第一個,因爲你不能將函數傳遞給'empty()' –

+0

錯誤^^對不起,學到了一些新的東西:) – OctoD

0

您可以使用:

$var = ''; 
if (array_key_exists('r_user', $_POST)) { 
    $var = trim($_POST['r_user']); 
} 
if (empty($var)) { 
    // do some stuffs 
} 

代替。

+0

你不能傳遞一個函數到'empty()' –

-1
if(isset($_POST['r_user'])){ 
      // ur code 
      }