转:http://www.uutan.net/index.php/archives/132
任何网站总是时刻处于敌意的攻击之下,然而攻击者的胜利通常不完全依赖于其技艺或智慧,往往是网站设计者的疏忽造成的。假如你正在设计一个网站,那么有三点特别值得你注意的:
- 用户输入
- 软件漏洞
- 内部任务
不管你是否认同,用户输入的确非常重要。假如你在使用qeePHP框架开发这个网站,那么你有福了,我将在下面介绍qeePHP框架表单针对用户输入验证所做的工作。
在qeePHP框架验证中,存在着很多方法方便我们在使用qform表单时,验证用户输入数据的有效性非常重要。qeePHP的输入验证规则写在模型中,下面就是一个简单的模型:
qeePHP针对表单的验证规则就在validations中,以php优美的数组存在。让我们先看下面这张表单。可以让我们一目了然的知道validator中提供了那些方法:
Id | 方法 | 作用 | 示例 |
---|---|---|---|
1 | between | 在两个值之间 | array(’between’,1,20,’该值只能在1-20的范围内’) |
2 | equal | 是否等于指定值 | array(’equal’,'test’,'只能为test’) |
3 | greater_or_equal | 大于或等于指定值 | array(’greater_or_equal’,10,’请指定值必需大于或等于10的值’) |
4 | greater_than | 大于指定值 | array(’greater_than’,10,’请指写必需大于10的值’) |
5 | is_alnum | 是否为字母加数字的组合 | array(’is_alnum’,'该值只能为字母加数字’) |
6 | is_alnumu | 是否是字母、数字和下划线 | array(’is_alnumu’,'只能为字母、数字和下划线的组合’) |
7 | is_alpha | 是否为字母 | array(’is_alpha’,'只能为字母’) |
8 | is_ascii | 是否是ASCII字符 | array(’is_ascii’,'只能为ASCII字符’) |
9 | is_binary | 是否为二进制数值 | array(’is_binary’,'请指定一个二进制的有效值’) |
10 | is_cntrl | 是否为控制字符 | array(’cntrl’,'指定控制字符’) |
11 | is_date | 是否为日期(yyyy/mm/dd, yyyy-mm-dd) | array(’is_date’,'请指定一个有效的值’) |
12 | is_datetime | 是否是日期+时间 (yyyy/mm/dd hh:mm:ss, yyyy-mm-dd hh:mm:ss) | array(’is_datetime’,'请指定一个有效的值’) |
13 | is_digits | 是否为数字 | array(’is_digits’,'指定值只能为数字’) |
14 | is_domain | 是否为Internet域名 | array(’is_domain’,'请指定一个域名’) |
15 | is_email | 是否是电子邮件地址格式 | array(’is_email’,'请正确填写邮件地址’) |
16 | is_float | 是否为浮点数 | array(’is_float’,'请指定一个浮点数’) |
17 | is_graph | 是否是可见的字符 | array(’is_graph’,'该字符不可见’) |
18 | is_int | 是否为整数 | array(is_int’,'请指定一个有效的值’) |
19 | is_ipv4 | 是否为IPv4地址 (格式: a.b.c.h) | array(’is_ipv4′,’请指定一个有效值’) |
20 | is_lower | 是否是全小写 | array(’is_lower’,'请写小写’) |
21 | is_octal | 是否为八进制数值 | array(’is_octal’,'请指定一个八进制的有效值’) |
22 | is_print | 是否是可打印的字符 | array(’is_print’,'必需是可打印的字符’) |
23 | is_punct | 是否是标点符号 | array(’is_punct’,'只能为标点符号’) |
24 | is_time | 是否是时间 (hh:mm:ss) | array(is_time’,'请指定一个有效值’) |
25 | is_type | 请指定特定类型的值 | array(’is_type’,'int’,'只能为int类型的值’) |
26 | is_upper | 是否是全小写 | array(’is_upper’,'请全写大写’) |
27 | is_whitespace | 是否是空白字符 | array(’is_whitespace’,'不能为空白字符’) |
28 | is_xdigits | 是否是十六进制数 | array(’is_xdigits’,'只能为十六进制数’) |
29 | less_or_equal | 小于或等于指定值 | array(’less_or_equal’,10,’请指定值必需小于或等于10′) |
30 | less_than | 小于指定值 | array(’less_than’,10,’请指定值必需小于10′) |
31 | max | 最大值 | array(’max’,100,’请指定小于100以内的有效值’) |
32 | strlen | 验证字符串长度 | array(’strlen’,5,’该值长度只能为5′) |
33 | max_length | 值的最大长度不能超过它 | array(’max_length’,10,’有效值长度最大值为10′) |
34 | min | 最小值 | array(’min’,2,’有效值的最小值为2′) |
35 | min_length | 值的最小长度不能小于它 | array(’min_length’,1,’有效值长度最小为1′) |
36 | not_empty | 不为空的值 | array(’not_empty’,'指定值不能为空’) |
37 | not_equal | 不等于指定值 | array(’not_equal’,'test’,'不能为test的值’) |
38 | not_null | 不为null的值 | array(’not_null’,'不能为null的值’) |
39 | not_same | 是否与指定值不完全一致 | array(’not_same’,不完全一致的值’) |
40 | regex | 使用正则表达式进行验证 | array(’regex’,'规则写在这里’,'规则出错写在这里’) |
41 | same | 是否与指定值完全一致 | array(’same’,'完全一致的值’) |
42 | skip_empty | 如果值为空(空字符串或者null),则跳过余下验证 | array(’skip_empty’) |
43 | skip_null | 如果值为null,则跳过余下验证 | array(’skip_null’) |
44 | skip_on_failed | 如果接下来的验证规则出错,则跳过后续的验证 | array(’skip_on_failed’) |