2012-09-17 135 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 
      }