PHP:空/空并且如果逻辑查询

时间:2012-07-15 17:19:50

标签: php

我有一个输入框,用php会回显输入的名字。问题是,当用户按空格时,它会回显空白字符。我搜索过并没有找到绝对的答案。我知道如果输入字段中存在绝对的anthing,则使用!empty但是如果有空格则应该为空。

如果输入中有空格,如何避免回显?

if (!empty($name['name']) || null ) {
    echo 'Your name is '.$name;

}
{

//do nothing 

}

3 个答案:

答案 0 :(得分:3)

函数empty()的调用如果未设置,为null,空字符串,布尔值为假或0,则为真。我仍然喜欢在条件中避免重逻辑...拉出修剪并准备字符串在测试之前。

$nameString = empty($name['name'])?null:trim($name['name']);
if(!empty($nameString){
    //go to town here
}

为了提前安抚狂热分子,我还要补充一点,你应该在打印之前逃避任何用户输入。这样你可以防范XSS。为了更安全,请试试这个:

$nameString = empty($name['name'])?null:trim($name['name']);
$nameString = htmlentities($nameString, ENT_QUOTES);
if(!empty($nameString){
    //go to town here
}

然而,旁注... htmlentities()调用不能防止SQL注入,所以如果这些数据进入数据库,你将不得不做更多的工作 - 因为你的问题没有表示你正在做除了打印到屏幕以外的任何事情,我们可以暂停SQL注入讨论。

答案 1 :(得分:0)

您想要检查是否有空格,您可能想要这样做:

if ($name['name'] != null && trim($name['name']) != "" && !strpos(trim($name['name']), " "))
{
    // work with $name['name']
}
else
{
    // nothing
}

答案 2 :(得分:0)

小心使用empty(),如果用户输入“0”,它将返回TRUE。

您可能想要使用strlen()