!空(修剪($ _ POST [ '用户名']

时间:2013-06-07 16:02:45

标签: php trim fatal-error is-empty

好的问题是,当我使用trim函数不起作用但是当我运行没有trim函数的代码时它工作,但没有正常工作(表单接受空格)

<?php
session_start();
unset($_SESSION['username']);

 if (isset($_SESSION['username']))
    {echo "You are in already";}

 else if ($_SERVER['REQUEST_METHOD'] == 'POST')
 {      

 if (!empty(trim($_POST['username'])) && !empty(trim($_POST['email'])))
    {
        $uname = htmlentities($_POST['username']);
        $email = htmlentities($_POST['email']);
  $_SESSION['username'] = $uname;

            echo "THANKS: " . $uname . "<br />";
    }
 else { echo "fill the goddemn field"; }


  } else { ?>

<form action="index.php" method="post">
 <label for="username">USERNAME:</label>
 <input type="text" name="username" />
 <label for="E-MAIL">E-mail:</label>
 <input type="text" name="email" />
 <input type="submit" value="Enter" />
</form>


<?php    } ?>

我尝试了手册http://php.net/manual/en/function.trim.php,但很难阅读,我没有弄清楚任何事情。

1 个答案:

答案 0 :(得分:16)

正如PHP manual所说:

  

为空 - 确定变量是否为空

在您的情况下,trim是函数调用,而不是变量。

<击> 如果你真的想内联你的if语句,你可以使用类似的东西:

if (!empty($var=trim($_POST['username'])) && !empty($var=trim($_POST['email'])))

<击>

但更好的实施应该是:

$username = array_key_exists('username', $_POST) ? trim($_POST['username']) : null;
$email = array_key_exists('email', $_POST) ? trim($_POST['email']) : null;

if (!empty($username) && !empty($email))
{
    (...)