码迷,mamicode.com
首页 > 其他好文 > 详细

ShopNC学习笔记三:表单数据验证

时间:2016-01-13 17:29:21      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

数据安全是程序开发中至关重要一点,特别是对商城程序而言,一般对表单数据验证都是采用前端JS与后端PHP验证相结合的方式,ShopNC商城系统在表单数据验证上也是如此, ShopNC系统的后台PHP验证分为两部分:控制器层验证和框架底层验证,Validate验证类的作用就是完成在控制器里的验证。

下面是登录时的一段使用Validate类验证程序:

if (chksubmit()){

       $obj_validate = new Validate();

       $obj_validate->validateparam = array(

       array("input"=>$_POST["username"],        "require"=>"true", "message"=>"请输入用户名"),

       array("input"=>$_POST["password"],         "require"=>"true", "message"=>"请输入密码"),

       array("input"=>$_POST["captcha"],            "require"=>(C(‘captcha_status_login‘) ? "true" : "false"), "message"=>"请输入验证码"),

       );

       $error = $obj_validate->validate();

       if ($error != ‘‘){

//输入信息有误,验证失败!

              showValidateError($error);

       }else {

              /**

               * 程序继续向下执行

               */

       }

}

 

代码分析:

首先由chksubmit函数判断表单提交是否合法,令牌是否正确,判断通过后,使用Validate类进行数据验证,Validate类的validateparam属性数组存放待验证的信息,其中,input为待验证的数据,require为是否为必填项(true/false),message为如果验证未通过,返回的提示信息。可以看出上例的用户名和密码均为必填项,验证码视系统开关captcha_status_login的值而定。C函数作用是取得系统配置项。

准备工作都完后成,开始调用类的validate方法进行验证,如果验证未过通,返回错误信息,否则返回空。错误信息的输出由showValidateError函数完成,该函数跟据是否是异步提交返回不同的提示形式。

除可以验证是否为必填外,Validate类还可以完成一些常用的数据类型验证。如验证邮件、电话、网址、货币、邮编、QQ、数字、英文、汉字、两数值比较等。如:

$obj_validate = new Validate();

$obj_validate->validateparam = array(

array("input"=>$_POST["password1"], "require"=>"true", "validator"=>"compare", "operator"=>"==", "to"=>$_POST["password2"], "message"=>"两次密码输入要一致"),

array("input"=>$_POST["input0"], "require"=>"true", "validator"=>"email", "message"=>‘邮件验证‘),

array("input"=>$_POST["input1"], "require"=>"true", "validator"=>"phone", "message"=>‘固话验证‘),

array("input"=>$_POST["input2"], "require"=>"true", "validator"=>"mobile", "message"=>‘手机验证‘),

array("input"=>$_POST["input3"], "require"=>"true", "validator"=>"url", "message"=>‘网址验证‘),

array("input"=>$_POST["input4"], "require"=>"true", "validator"=>"currency", "message"=>‘价格验证‘),

array("input"=>$_POST["input5"], "require"=>"true", "validator"=>"number", "message"=>‘数字验证‘),

array("input"=>$_POST["input6"], "require"=>"true", "validator"=>"zip", "message"=>‘邮编验证‘),

array("input"=>$_POST["input6"], "require"=>"true", "validator"=>"qq", "message"=>‘QQ验证‘),

array("input"=>$_POST["input6"], "require"=>"true", "validator"=>"english", "message"=>‘英文字母验证‘),

array("input"=>$_POST["input6"], "require"=>"true", "validator"=>"chinese", "message"=>‘中文验证‘),

);

$error = $obj_validate->validate();

ShopNC学习笔记三:表单数据验证

标签:

原文地址:http://www.cnblogs.com/zhijiangch/p/5127619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!