PHP Web开发中常用的三个表单验证函数,这些都是一些经常用到的判断函数。
ISSET();——适合于检测是否存在这个参数。
定义和作用范围:用于测试一个变量是否具有值(包括0,FALSE,或者一个空字串,但不能是NULL),即:“...?fo=”也是可以通过检测,因此不适用。但如果是网址参数中并不含fo参数,就可以用isset来检测,此时isset($_GET['fo'])返回false。
不适用于:该函数不适合于验证html表单中的文本的有效方式。要检查用户输入文本是否有效,可以用empty();
empty();——最好用的一个函数。
定义和作用范围:用于检查变量是否具有空值:包括:空字串,0,null 或false,即:“...?fo=”或“...?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>
相关文章: