【发布时间】:2013-06-04 00:19:47
【问题描述】:
好的,问题是当我使用修剪功能时不起作用,但是当我在没有修剪功能的情况下运行代码时,它可以正常工作,但不能正常工作(表单接受空格)
<?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,但它很难阅读,我什么也没弄明白。
【问题讨论】:
-
您不能将
trim()的结果直接传递给empty()。打开错误报告,您将看到与之相关的错误。empty()需要一个 变量 作为它的参数,所以你必须先将trim($_POST[])存储到 vars 中,然后通过empty()进行测试 -
error_reporting(E_ALL); ini_set('display_errors', 1);总是在开发代码时这样做。 -
旁注:似乎与
unset一个变量相反,然后立即检查它是否设置为isset。 -
看看at the
empty()docs,从 PHP 5.5 开始,它将最终支持任意表达式,而不是被任何不是真实变量的东西阻塞。
标签: php trim fatal-error is-empty