验证是构建Web应用程序时的一个重要过程.它确保我们获得的数据适当且有效地存储或处理. CodeIgniter使这项任务变得非常简单.让我们通过一个简单的例子来理解这个过程.
示例
创建一个视图文件 myform.php 并保存下面在 application/views/myform.php 中对其进行编码.此页面将显示用户可以提交其姓名的表单,我们将验证此页面以确保在提交时不应为空.
My Form
创建一个视图文件 formsuccess.php 并将其保存在 application/views/formsuccess.php 中.如果表格验证成功,将显示此页面.
My Form Your form was successfully submitted!
创建一个控制器文件 Form.php 并将其保存在 application/controller/Form.php 中.此表单将显示错误,如果未正确验证或重定向到 formsuccess.php 页面.
load->helper(array('form')); /* Load form validation library */ $this->load->library('form_validation'); /* Set validation rule for name field in the form */ $this->form_validation->set_rules('name', 'Name', 'required'); if ($this->form_validation->run() == FALSE) { $this->load->view('myform'); } else { $this->load->view('formsuccess'); } } }?>
在 application/config/routes.php 中添加以下行.
$route['validation'] = 'Form';
让我们通过在浏览器中访问以下URL来执行此示例.此网址可能因您的网站而异.
http://yoursite.com/index.php/validation
它将产生以下屏幕 :
我们在控制器中添加了验证 : 提交表单前,名称是必填字段.因此,如果您单击提交按钮而不在名称字段中输入任何内容,则会在提交之前要求您输入名称,如下面的屏幕所示.
成功输入名称后,您将被重定向到屏幕,如下所示.
在上面的示例中,我们使用了所需的规则设置. CodeIgniter中有许多规则,如下所述.
验证规则参考
以下是所有本机规则的列表可以使用 :
规则 | 参数 | 描述 | 示例 |
---|---|---|---|
required | 否 | 如果表单元素是,则返回FALSE空. | |
matches | 是 | 如果表单元素与参数中的表单元素不匹配,则返回FALSE. | 匹配[form_item] |
regex_match | 是 | 如果表单元素不匹配,则返回FALSE正则表达式. | regex_match [/regex/] |
differs | 是 | 如果表单元素与参数中的表单元素没有差异,则返回FALSE . | 不同[form_item] |
is_unique | 是 | 如果表单元素对参数中的表和字段名称不唯一,则返回FALSE.注意 : 此规则要求启用查询生成器才能工作. | is_unique [table.field] |
min_length | 是 | 如果表单元素短于参数值,则返回FALSE. | min_length [3] |
max_length | 是 | 如果表单元素是,则返回FALSE比参数值长. | max_length [12] |
exact_length | 是 | 如果表单元素不完全是参数值,则返回FALSE. | exact_length [8] |
greater_than | 是 | 如果表单元素小于或等于参数值或不是数字,则返回FALSE. | greater_than [8] |
greater_than_equal_to | 是 | 如果表单元素小于参数值,则返回FALSE,或者不是数字. | greater_than_equal_to [8] |
less_than | 是 | 如果表单元素大于或等于参数值或不是数字,则返回FALSE. | less_than [8] |
less_than_equal_to | 是 | 退货如果表单元素大于参数值,则为FALSE,或者不是数字. | less_than_equal_to [8] |
in_list | 是 | 如果表单返回FALSE元素不在预定列表中. | in_list [红色,蓝色,绿色] |
alpha | 否 | 如果表单元素包含其他任何内容,则返回FALSE比字母字符. | |
alph a_numeric | 否 | 如果表单元素包含除字母数字字符以外的任何内容,则返回FALSE. | |
alpha_numeric_spaces | 否 | 如果表单元素包含除字母数字字符或空格以外的任何内容,则返回FALSE.修剪后应使用以避免开头或结尾的空格 | |
alpha_dash | 否 | 如果表单元素包含除字母数字字符以外的任何内容,则返回FALSE ,下划线或破折号. | |
numeric | 否 | 如果表单元素包含非数字字符,则返回FALSE. | |
integer | 否 | 如果表单元素包含除整数之外的任何内容,则返回FALSE. | |
decimal | 否 | 如果表单元素包含十进制数以外的任何内容,则返回FALSE. | |
is_natural | 否 | 如果表单返回FALSE元素包含除一个自然数字和负数; 0,1,2,3等 | |
is_natural_no_zero | 否 | 如果表单元素包含除自然数之外的任何内容,则返回FALSE,但不是零和负; 1,2,3等 | |
valid_url | 否 | 如果表单元素不包含有效的URL,则返回FALSE. | |
valid_email | 否 | 如果表单元素不包含有效的电子邮件地址,则返回FALSE. | |
valid_emails | 否 | 如果逗号分隔列表中提供的任何值不是有效的电子邮件,则返回FALSE. | |
valid_ip | 否 | 如果提供的IP无效,则返回FALSE.接受可选参数'ipv4'或'ipv6'以指定IP格式. | |
valid_base64 | 否 | 如果提供的字符串包含,则返回FALSE除有效的Base64字符以外的任何其他内容. |