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也可以?成Shell Script
Oct 09 PHP
PHP中函数内引用全局变量的方法
Oct 20 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
Jun 13 PHP
php中防止SQL注入的最佳解决方法
Apr 25 PHP
Linux编译升级php的详细方法
Nov 04 PHP
php旋转图片90度的方法
Nov 07 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
简单解决微信文章图片防盗链问题
Dec 17 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 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
用Socket发送电子邮件
2006/10/09 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
php查询操作实现投票功能
2016/05/09 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
基于jQuery的获取标签名的代码
2012/07/16 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
c++生成dll使用python调用dll的方法
2014/01/20 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
python使用tornado实现简单爬虫
2018/07/28 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
django富文本编辑器的实现示例
2019/04/10 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
销售会计工作职责
2013/12/02 职场文书
领导检查欢迎词
2014/01/14 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
无罪辩护词范文
2015/05/21 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android