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

简介: 本文就简单讲一下php中表单验证的三个函数,应该比较常用吧,最后给一些示例,请看下文。 ISSET();——适合于检测是否存在这个参数。 定义和作用范围:用于测试一个变量是否具有值(包括0,FALSE,或者一个空字串,但不能是NULL),即:“http://localhost/?fo=”也是可以通过检测,因此不适用。

本文就简单讲一下php中表单验证的三个函数,应该比较常用吧,最后给一些示例,请看下文。

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>

目录
相关文章
|
数据管理 数据库
两种不同充血模型实现中的问题及解决办法
### 前言 关于贫血模型与充血模型,已经有大量的文章写到了,但大部分都只是写了两种模型的对比,其中的例子也相对比较简单。 当我们真正在使用充血模型的过程中,还会碰到很多问题,本文期望通过我们复杂的业务场景,深入的讲解我们在真正使用充血模型时,到底会碰到哪些问题,我们又要如何来解决。 ### 什么是充血模型 Martin Fowler在2003年发表的一篇文章中,第一次提出贫血模型的概念,他把贫
2418 0
|
分布式计算 算法 大数据
阿里云大数据ACA及ACP复习题(371~380)
本人备考阿里云大数据考试时自行收集准备的题库,纯手工整理的,能够覆盖到今年7月份,应该是目前最新的,发成文章希望大家能一起学习,不要花冤枉钱去买题库背了,也希望大家能够顺利通关ACA和ACP考试(自己整理解析也需要时间,可能有更新不及时的情况哈)
|
算法 程序员
程序员可能越来越排斥面试时做题的原因
程序员可能越来越排斥面试时做题的原因
400 1
|
数据安全/隐私保护
阿里企业邮箱申请注册指南
阿里企业邮箱申请注册指南,阿里云企业邮箱购买流程,企业邮箱分为免费版、标准版、集团版和尊享版,阿里云百科分享企业邮箱版本区别,企业邮箱收费标准价格表,以及阿里企业邮箱详细购买流程
|
人工智能 资源调度 算法
理解 P/NP 问题时,我产生了一种已经触碰到人类认知天花板的错觉?!
咱研究算法的时候,一定遇到过动态规划中的 旅行商问题(TSP)! TSP 是一个 NP 完全问题,今天咱要聊聊正是七大 千禧年大奖难题 之首的 【P/NP 问题】!
|
网络协议 数据安全/隐私保护 网络架构
voip网络电话设置和网关IP配置
voip网络电话设置和网关IP配置
|
存储 安全 Linux
【DSW Gallery】阿里云OSS使用指南
阿里云OSS是一款海量、安全、低成本、高可靠的云存储服务。您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。
【DSW Gallery】阿里云OSS使用指南
|
存储 SQL 缓存
Spring Batch 批处理框架,真心强啊!!(二)
Spring Batch 批处理框架,真心强啊!!(二)
Spring Batch 批处理框架,真心强啊!!(二)
|
存储 缓存 JavaScript
来学习开源模块化前端框架—Layui【Layui 极致轻量前端框架】
它是一个开源的 Web UI 解决方案,采用自己的经典模块化规范,遵循原生 HTML/CSS/JS 开发模式。它很容易使用。它的风格简单轻巧,而组件优雅而丰富。从源代码到使用方法的每一个细节都经过精心雕琢,非常适合快速开发的 web 界面。Layui 不同于那些基于 MVVM 的前端框架,但它并不违背这条道路,而是相信回归自然的方式。准确地说,它更面向后端开发人员。不需要参与前端工具,只需面对浏览器本身,让您需要的所有元素和交互都来自这里。