PHP开发中常用的三个表单验证函数使用小结


Posted in PHP onMarch 03, 2010

ISSET();——适合于检测是否存在这个参数。

定义和作用范围:用于测试一个变量是否具有值(包括0,FALSE,或者一个空字串,但不能是NULL),即:“http://localhost/?fo=”也是可以通过检测,因此不适用。但如果是“http://localhost/”参数中并不含fo参数,就可以用isset来检测,此时isset($_GET['fo'])返回false。

不适用于:该函数不适合于验证html表单中的文本的有效方式。要检查用户输入文本是否有效,可以用empty();

empty();——最好用的一个函数。

定义和作用范围:用于检查变量是否具有空值:包括:空字串,0,null 或false,即:“http://localhost/?fo=”或“http://localhost/?fo=0”时,empty检测出来的结果都是ture,不适用范围:不适用于检测可为0的参数。

is_numeric();——只适用于检测数字,但假如参数名不存在,会出错,因此不适合于第一层检测。

综合示例:

<?php 
ini_set("display_errors",1); 
//ini_set("error_reporting",E_ALL); print_r 
error_reporting(E_ALL); $a=NULL; 
if(isset($a))echo '变量$a的isset为真'; 
echo '<h2>isset的情形:</h2>'; 
if(isset($_GET['fo'])){ 
echo '变量\'fo\'的isset为真,变量可用'; 
}else{ 
echo '变量\'fo\'的isset为假,无变量设置'; 
} 
echo '<h2>empty的情形:</h2>'; 
if(empty($_GET['fo'])){ 
echo '变量\'fo\'的empty为真,即空值或无效值'; 
}else{ 
echo '变量\'fo\'的empty为假,有值'; 
} 
echo '<h2>is_numeric的情形:</h2>'; 
if(is_numeric($_GET['fo'])){ //在参数中无fo参数时,则出错。 
echo '变量\'fo\'的is_numeric为真,是数字'; 
}else{ 
echo '变量\'fo\'的is_numeric为假,不是数字'; 
} 
echo "<h2>\$_GET['fo']=''的情形:</h2>"; 
if($_GET['fo']==''){ //在参数中无fo参数时,则出错。 
echo 'fo无值,空的字符串'; 
}elseif($_GET['fo']!=''){ 
echo 'fo有值,不为\'\'.'; 
} 
echo "<h2>\$_GET['sex']='m'的情形:</h2>"; 
if($_GET['sex']=='m'){ //当参数中无sex变量时就会出错。 
echo '男的'; 
}elseif($_GET['sex']=='f'){ 
echo '女的'; 
} 
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>无标题文档</title> 
</head> 
<body> 
</body> 
<p> 
<a href="?fo=Jack">传有效值</a> <a href="?fo=">传空值</a> <a href="?fo=0">传0值</a> 
<br /><br /> 
<a href="?sex=m">性别:男</a> <a href="?sex=f">性别:女</a> 
<br /><br /> 
<a href="/">清空</a> 
<br /><br /> 
<input type="text" value="<?php echo $_GET['fo']!=''?$_GET['fo']:'';?>" size="155" /> </p> 
</html>
PHP 相关文章推荐
两个开源的Php输出Excel文件类
Feb 08 PHP
PHP提取数据库内容中的图片地址并循环输出
Mar 21 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
Jul 02 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 PHP
php中动态调用函数的方法
Mar 16 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
PHP如何读取由JavaScript设置的Cookie
Mar 22 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
Apr 30 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
PHP 引用文件技巧
Mar 02 #PHP
php下过滤html代码的函数 提高程序安全性
Mar 02 #PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 #PHP
PHP clearstatcache()函数详解
Mar 02 #PHP
PHP strtok()函数的优点分析
Mar 02 #PHP
关于PHP5 Session生命周期介绍
Mar 02 #PHP
PHP正则的Unknown Modifier错误解决方法
Mar 02 #PHP
You might like
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
PHP EOT定界符的使用详解
2008/09/30 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
2008/12/19 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
jquery实现Ctrl+Enter提交表单的方法
2015/07/21 Javascript
angular2使用简单介绍
2016/03/01 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
Vue header组件开发详解
2018/01/26 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
python基础教程之对象和类的实际运用
2014/08/29 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
keras topN显示,自编写代码案例
2020/07/03 Python
django rest framework 过滤时间操作
2020/07/12 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
.net软件工程师应聘上机试题
2015/03/10 面试题
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
工作年限证明模板
2014/11/01 职场文书
大学生见习报告总结
2014/11/04 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers
Java字符串逆序方法详情
2022/03/21 Java/Android
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技