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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 PHP
PHP 工厂模式使用方法
May 18 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
Dec 30 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
PHP编码规范的深入探讨
Jun 06 PHP
使用PHP获取汉字的拼音(全部与首字母)
Jun 27 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
PHP的关于变量和日期处理的一些面试题目整理
Aug 10 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
php进程daemon化的正确实现方法
Sep 06 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 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中array_rand函数的使用方法
2016/09/11 PHP
Jquery下的26个实用小技巧(jQuery tips, tricks &amp; solutions)
2010/03/01 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
理解JS绑定事件
2016/01/19 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
常用的javascript设计模式
2017/01/11 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
Python Flask框架扩展操作示例
2019/05/03 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
2019年.net常见面试问题
2012/02/12 面试题
小学岗位竞聘方案
2014/01/22 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
论文指导教师评语
2014/04/28 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
爱护公物演讲稿
2014/09/09 职场文书
死亡赔偿协议书
2015/01/28 职场文书
八达岭长城导游词
2015/01/30 职场文书
教师学期末个人总结
2015/02/13 职场文书
计划生育工作总结2015
2015/04/03 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
利用Pycharm连接服务器的全过程记录
2021/07/01 Python