 
- CodeIgniter 教程
- CodeIgniter - 主页
- CodeIgniter - 概述
- CodeIgniter - 安装 CodeIgniter
- CodeIgniter - 应用程序架构
- CodeIgniter - MVC 框架
- CodeIgniter - 基本概念
- CodeIgniter - 配置
- CodeIgniter - 使用数据库
- CodeIgniter - 库
- CodeIgniter - 错误处理
- CodeIgniter - 文件上传
- CodeIgniter - 发送电子邮件
- CodeIgniter - 表单验证
- CodeIgniter - 会话管理
- CodeIgniter - Flashdata
- CodeIgniter - 临时数据
- CodeIgniter - Cookie 管理
- CodeIgniter - 常用函数
- CodeIgniter - 页面缓存
- CodeIgniter - 页面重定向
- CodeIgniter - 应用程序分析
- CodeIgniter - 基准测试
- CodeIgniter - 添加 JS 和 CSS
- CodeIgniter - 国际化
- CodeIgniter - 安全
- CodeIgniter 有用资源
- CodeIgniter - 快速指南
- CodeIgniter - 有用的资源
- CodeIgniter - 讨论
CodeIgniter - 表单验证
验证是构建 Web 应用程序时的一个重要过程。它确保我们获得的数据对于存储或处理来说是正确且有效的。CodeIgniter 使这项任务变得非常简单。让我们通过一个简单的例子来理解这个过程。
例子
创建一个视图文件myform.php并将以下代码保存在application/views/myform.php中。此页面将显示用户可以提交姓名的表单,我们将验证此页面以确保提交时它不应该为空。
<html>
 
   <head> 
      <title>My Form</title> 
   </head>
	
   <body>
      <form action = "" method = "">
         <?php echo validation_errors(); ?>  
         <?php echo form_open('form'); ?>  
         <h5>Name</h5> 
         <input type = "text" name = "name" value = "" size = "50" />  
         <div><input type = "submit" value = "Submit" /></div>  
      </form>  
   </body>
	
</html>
创建一个视图文件formsuccess.php并将其保存在application/views/formsuccess.php中。如果表单验证成功,将显示此页面。
<html>
 
   <head> 
      <title>My Form</title>
   </head> 
	
   <body>  
      <h3>Your form was successfully submitted!</h3>  
      <p><?php echo anchor('form', 'Try it again!'); ?></p>  
   </body>
	
</html>
创建一个控制器文件Form.php并将其保存在application/controller/Form.php中。如果该表单未正确验证或重定向到formsuccess.php页面,则该表单将显示错误。
<?php
  
   class Form extends CI_Controller { 
	
      public function index() { 
         /* Load form helper */ 
         $this->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 来执行此示例。该 URL 可能因您的站点而异。
http://yoursite.com/index.php/validation
它将产生以下屏幕 -
 
我们在控制器中添加了验证 -提交表单之前,名称是必填字段。因此,如果您单击提交按钮而没有在名称字段中输入任何内容,那么系统会要求您在提交之前输入名称,如下图所示。
 
成功输入名称后,您将被重定向到如下所示的屏幕。
 
在上面的示例中,我们使用了所需的规则设置。CodeIgniter 中有许多可用的规则,如下所述。
验证规则参考
以下是所有可用的本机规则的列表 -
| 规则 | 范围 | 描述 | 例子 | 
|---|---|---|---|
| 必需的 | 不 | 如果表单元素为空,则返回 FALSE。 | |
| 火柴 | 是的 | 如果表单元素与参数中的元素不匹配,则返回 FALSE。 | 匹配[form_item] | 
| 正则表达式匹配 | 是的 | 如果表单元素与正则表达式不匹配,则返回 FALSE。 | 正则表达式_匹配[/正则表达式/] | 
| 不同 | 是的 | 如果表单元素与参数中的元素相同,则返回 FALSE。 | 不同[form_item] | 
| 是独特的 | 是的 | 如果表单元素对于参数中的表和字段名称不唯一,则返回 FALSE。注意 - 此规则需要启用查询生成器才能工作。 | is_unique[表.字段] | 
| 最小长度 | 是的 | 如果表单元素短于参数值,则返回 FALSE。 | 最小长度[3] | 
| 最长长度 | 是的 | 如果表单元素长于参数值,则返回 FALSE。 | 最大长度[12] | 
| 精确长度 | 是的 | 如果表单元素不完全是参数值,则返回 FALSE。 | 精确长度[8] | 
| 比...更棒 | 是的 | 如果表单元素小于或等于参数值或者不是数字,则返回 FALSE。 | 大于[8] | 
| 大于等于 | 是的 | 如果表单元素小于参数值或不是数字,则返回 FALSE。 | 大于等于[8] | 
| 少于 | 是的 | 如果表单元素大于或等于参数值或者不是数字,则返回 FALSE。 | 小于[8] | 
| 小于等于 | 是的 | 如果表单元素大于参数值或不是数字,则返回 FALSE。 | 小于等于[8] | 
| 列表中 | 是的 | 如果表单元素不在预定列表内,则返回 FALSE。 | in_list[红、蓝、绿] | 
| α | 不 | 如果表单元素包含字母字符以外的任何内容,则返回 FALSE。 | |
| 字母数字 | 不 | 如果表单元素包含字母数字字符以外的任何内容,则返回 FALSE。 | |
| 字母数字空间 | 不 | 如果表单元素包含字母数字字符或空格以外的任何内容,则返回 FALSE。应在修剪之后使用,以避免开头或结尾出现空格 | |
| 阿尔法_破折号 | 不 | 如果表单元素包含字母数字字符、下划线或破折号以外的任何内容,则返回 FALSE。 | |
| 数字 | 不 | 如果表单元素包含数字字符以外的任何内容,则返回 FALSE。 | |
| 整数 | 不 | 如果表单元素包含整数以外的任何内容,则返回 FALSE。 | |
| 小数 | 不 | 如果表单元素包含十进制数字以外的任何内容,则返回 FALSE。 | |
| 是_自然的 | 不 | 如果表单元素包含自然数以外的任何内容 - 0、1、2、3 等,则返回 FALSE。 | |
| is_natural_no_zero | 不 | 如果表单元素包含自然数以外的任何内容(但不包括零 - 1、2、3 等),则返回 FALSE。 | |
| 有效网址 | 不 | 如果表单元素不包含有效的 URL,则返回 FALSE。 | |
| 有效的电子邮件 | 不 | 如果表单元素不包含有效的电子邮件地址,则返回 FALSE。 | |
| 有效的电子邮件 | 不 | 如果逗号分隔列表中提供的任何值不是有效的电子邮件,则返回 FALSE。 | |
| 有效IP | 不 | 如果提供的 IP 无效,则返回 FALSE。接受可选参数“ipv4”或“ipv6”来指定 IP 格式。 | |
| 有效_base64 | 不 | 如果提供的字符串包含有效 Base64 字符以外的任何内容,则返回 FALSE。 |