首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >值不为空的PHP表单验证

值不为空的PHP表单验证
EN

Stack Overflow用户
提问于 2013-04-03 15:34:59
回答 3查看 2.2K关注 0票数 1

当尝试验证一个字段时,它似乎不起作用。当$postcode不是null时,我只需要执行!is_numeric。我确实有客户端验证,但我想确保我也有服务器端验证。

代码:

代码语言:javascript
运行
复制
else if(!is_null($postcode) && !is_numeric($postcode))  
{
    $msg_to_user = '<br /><br /><h4><font color="FF0000">Postcode must be a numeric value.</font></h4>';
}
EN

回答 3

Stack Overflow用户

发布于 2013-04-03 15:48:00

假设$postcode来自$POST$GET,那么它始终是一个字符串。因此,无论如何,!is_null()都将为FALSE:

代码语言:javascript
运行
复制
php> var_dump(is_null(""))
#=> bool(false)

您可以恢复使用empty(),这更自由。然而,当涉及到这些检查时,PHP是完全不一致和奇怪的。例如,对于0,empty()也将返回FALSE。是啊。

代码语言:javascript
运行
复制
php> $postcode = "";
php> var_dump(empty($postcode))
#=> bool(true)
php> $postcode = 0;
php>var_dump(empty($postcode))
#=> bool(true)

一种更好的方法是做一些"duck-typing“。在您的示例中:当它可以转换为数值时,执行该操作并使用它。然后把它留给语言来决定它认为什么足够“数字”来转换。

代码语言:javascript
运行
复制
php> var_dump((int) "")
int(0)
php> var_dump((int) "13")
int(13)

所以:

代码语言:javascript
运行
复制
else if(($postcode = (int) $postcode) && ($postcode > 0)) {
}

最后,离题:注意你的业务假设:邮政编码并不总是数字的。是的,在美国大部分都是这样的。但还有更多的国家(以欧盟公民的身份这么说,他们经常访问那些假设每个人都是普通美国公民的网站)

票数 2
EN

Stack Overflow用户

发布于 2013-04-03 15:48:39

也许您想在strlen()函数上使用empty()函数,因为is_null()检查空值。如果$postcode为== "“,则不为空。

代码语言:javascript
运行
复制
http://php.net/manual/en/function.is-null.php

比你可以使用的

代码语言:javascript
运行
复制
else if(!empty($postcode) && !is_numeric($postcode))  {

代码语言:javascript
运行
复制
else if(strlen($postcode) > 0 && !is_numeric($postcode))  {

代码语言:javascript
运行
复制
else if($postcode != "" && !is_numeric($postcode))  {

正如链接中所指定的,如果您想使用is_null,最好使用$postcode !== NULL。快得多

票数 2
EN

Stack Overflow用户

发布于 2013-04-03 15:49:05

尝尝这个

代码语言:javascript
运行
复制
else if(!empty($postcode) && !is_numeric($postcode))  {
  $msg_to_user = '<br /><br /><h4><font color="FF0000">Postcode must be a numeric value.</font></h4>';
}

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15781442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档