Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

qeePHP Qform表单验证方法介绍

Posted on 2010-02-22 12:52  analyzer  阅读(665)  评论(0编辑  收藏  举报

转:http://www.uutan.net/index.php/archives/132

任何网站总是时刻处于敌意的攻击之下,然而攻击者的胜利通常不完全依赖于其技艺或智慧,往往是网站设计者的疏忽造成的。假如你正在设计一个网站,那么有三点特别值得你注意的:

  • 用户输入
  • 软件漏洞
  • 内部任务

不管你是否认同,用户输入的确非常重要。假如你在使用qeePHP框架开发这个网站,那么你有福了,我将在下面介绍qeePHP框架表单针对用户输入验证所做的工作。

在qeePHP框架验证中,存在着很多方法方便我们在使用qform表单时,验证用户输入数据的有效性非常重要。qeePHP的输入验证规则写在模型中,下面就是一个简单的模型:

class Sales extends QDB_ActiveRecord_Abstract
{
 
    static function __define()
    {
    	//~~~~~~~~~~~~~~~~~~~~~
 
              'validations' => array
            (
                'id' => array
                (
                    array('is_int', 'domain_id必须是一个整数'),
                ),
 
                'title' => array
                (
                    array('is_null', '标题不能为空'),
                ),
 
                // ~~~~~~~~~~~~~~~~~~~~~
            ),
		}      
 
    }
 
}

qeePHP针对表单的验证规则就在validations中,以php优美的数组存在。让我们先看下面这张表单。可以让我们一目了然的知道validator中提供了那些方法:

Id方法作用示例
1between在两个值之间array(’between’,1,20,’该值只能在1-20的范围内’)
2equal是否等于指定值array(’equal’,'test’,'只能为test’)
3greater_or_equal大于或等于指定值array(’greater_or_equal’,10,’请指定值必需大于或等于10的值’)
4greater_than大于指定值array(’greater_than’,10,’请指写必需大于10的值’)
5is_alnum是否为字母加数字的组合array(’is_alnum’,'该值只能为字母加数字’)
6is_alnumu是否是字母、数字和下划线array(’is_alnumu’,'只能为字母、数字和下划线的组合’)
7is_alpha是否为字母array(’is_alpha’,'只能为字母’)
8is_ascii是否是ASCII字符array(’is_ascii’,'只能为ASCII字符’)
9is_binary是否为二进制数值array(’is_binary’,'请指定一个二进制的有效值’)
10is_cntrl是否为控制字符array(’cntrl’,'指定控制字符’)
11is_date是否为日期(yyyy/mm/dd, yyyy-mm-dd)array(’is_date’,'请指定一个有效的值’)
12is_datetime是否是日期+时间 (yyyy/mm/dd hh:mm:ss, yyyy-mm-dd hh:mm:ss)array(’is_datetime’,'请指定一个有效的值’)
13is_digits是否为数字array(’is_digits’,'指定值只能为数字’)
14is_domain是否为Internet域名array(’is_domain’,'请指定一个域名’)
15is_email是否是电子邮件地址格式array(’is_email’,'请正确填写邮件地址’)
16is_float是否为浮点数array(’is_float’,'请指定一个浮点数’)
17is_graph是否是可见的字符array(’is_graph’,'该字符不可见’)
18is_int是否为整数array(is_int’,'请指定一个有效的值’)
19is_ipv4是否为IPv4地址 (格式: a.b.c.h)array(’is_ipv4′,’请指定一个有效值’)
20is_lower是否是全小写array(’is_lower’,'请写小写’)
21is_octal是否为八进制数值array(’is_octal’,'请指定一个八进制的有效值’)
22is_print是否是可打印的字符array(’is_print’,'必需是可打印的字符’)
23is_punct是否是标点符号array(’is_punct’,'只能为标点符号’)
24is_time是否是时间 (hh:mm:ss)array(is_time’,'请指定一个有效值’)
25is_type请指定特定类型的值array(’is_type’,'int’,'只能为int类型的值’)
26is_upper是否是全小写array(’is_upper’,'请全写大写’)
27is_whitespace是否是空白字符array(’is_whitespace’,'不能为空白字符’)
28is_xdigits是否是十六进制数array(’is_xdigits’,'只能为十六进制数’)
29less_or_equal小于或等于指定值array(’less_or_equal’,10,’请指定值必需小于或等于10′)
30less_than小于指定值array(’less_than’,10,’请指定值必需小于10′)
31max最大值array(’max’,100,’请指定小于100以内的有效值’)
32strlen验证字符串长度array(’strlen’,5,’该值长度只能为5′)
33max_length值的最大长度不能超过它array(’max_length’,10,’有效值长度最大值为10′)
34min最小值array(’min’,2,’有效值的最小值为2′)
35min_length值的最小长度不能小于它array(’min_length’,1,’有效值长度最小为1′)
36not_empty不为空的值array(’not_empty’,'指定值不能为空’)
37not_equal不等于指定值array(’not_equal’,'test’,'不能为test的值’)
38not_null不为null的值array(’not_null’,'不能为null的值’)
39not_same是否与指定值不完全一致array(’not_same’,不完全一致的值’)
40regex使用正则表达式进行验证array(’regex’,'规则写在这里’,'规则出错写在这里’)
41same是否与指定值完全一致array(’same’,'完全一致的值’)
42skip_empty如果值为空(空字符串或者null),则跳过余下验证array(’skip_empty’)
43skip_null如果值为null,则跳过余下验证array(’skip_null’)
44skip_on_failed如果接下来的验证规则出错,则跳过后续的验证array(’skip_on_failed’)

 

我要啦免费统计