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 相关文章推荐
example1.php
Oct 09 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
php定时计划任务的实现方法详解
Jun 06 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
Jun 13 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
PHP中文编码小技巧
Dec 25 PHP
初识laravel5
Mar 02 PHP
php使用curl简单抓取远程url的方法
Mar 13 PHP
完美利用Yii2微信后台开发的系列总结
Jul 18 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
PHP设计模式之工厂模式实例总结
Sep 01 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 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
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
php中通过curl smtp发送邮件
2012/06/05 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
js改变Iframe中Src的方法
2015/05/05 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
基于zepto.js简单实现上传图片
2016/06/21 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
js尾调用优化的实现
2019/05/23 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
Python实现选择排序
2017/06/04 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
Python实现全排列的打印
2018/08/18 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
Python实现像awk一样分割字符串
2020/09/15 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
舞蹈毕业生的自我评价
2014/03/05 职场文书
共筑中国梦演讲稿
2014/04/23 职场文书
2015年调度员工作总结
2015/04/30 职场文书
反腐倡廉影片观后感
2015/06/08 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers