PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法


Posted in PHP onAugust 22, 2011

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里的JS打印函数
Oct 09 PHP
个人站长制做网页常用的php代码
Mar 03 PHP
php数组一对一替换实现代码
Aug 31 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
Yii中的cookie的发送和读取
Jul 27 PHP
PHP在线打包下载功能示例
Oct 15 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
Laravel框架实现简单的学生信息管理平台案例
May 07 PHP
laravel实现上传图片的两种方式小结
Oct 12 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
Aug 18 #PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 #PHP
11个PHP 分页脚本推荐
Aug 15 #PHP
PHP版国家代码、缩写查询函数代码
Aug 14 #PHP
PHP动态创建Web站点的方法
Aug 14 #PHP
php程序的国际化实现方法(利用gettext)
Aug 14 #PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 #PHP
You might like
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
js单例模式详解实例
2013/11/21 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
在Python中使用判断语句和循环的教程
2015/04/25 Python
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
python3调用R的示例代码
2018/02/23 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
python实现图片转字符画
2021/02/19 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
教师自我鉴定范文
2013/11/10 职场文书
体育教育个人自荐信范文
2013/12/01 职场文书
优秀护士演讲稿
2014/04/30 职场文书
物理学专业求职信
2014/07/04 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL