CodeIgniter 表单验证

codeigniter 表单验证

 

验证是构建 web 应用程序的一个重要过程。它确保我们获得的数据是正确和有效的,可以存储或处理。 codeigniter 使这项任务变得非常容易。让我们通过一个简单的例子来理解这个过程。

 

示例

创建一个视图文件 myform.php 并将下面的代码保存在 application/views/myform.php 中。此页面将显示用户可以提交姓名的表单,我们将验证此页面以确保提交时它不应为空。

  
    
      my form 
   
  
   
                 echo validation_errors();   
          echo form_open('form');   
         name
 
           
         

创建视图文件 formsuccess.php 并将其保存在 application/views/formsuccess.php 中。如果表单验证成功,将显示此页面。

  
    
      my form     
  
     
      

your form was successfully submitted!

echo anchor('form', 'try it again!');

创建控制器文件 form.php 并将其保存在 application/controller/form.php 中。如果此表单未正确验证或重定向到 formsuccess.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 来执行此示例。此网址可能因您的网站而异。

http://yoursite.com/index.php/validation

它将产生以下屏幕:

我们在控制器中添加了验证- name 是提交表单之前的必填字段。因此,如果您点击提交按钮而未在名称字段中输入任何内容,那么您将被要求在提交前输入名称,如下面的屏幕所示。

成功输入名称后,您将被重定向到如下所示的屏幕。

在上面的示例中,我们使用了所需的规则设置。 codeigniter 中有许多可用的规则,如下所述。

 

验证规则参考

以下是所有可用的原生规则列表:

下面给出了最常用的可用原生规则列表。
规则 parameters 说明 示例

required

no 如果表单元素为空,则返回 false。  

matches

yes 如果表单元素与参数中的元素不匹配,则返回 false。 matches[form_item]

regex_match

yes 如果表单元素与正则表达式不匹配,则返回 false。 regex_match[/regex/]

differs

yes 如果表单元素与参数中的元素没有不同,则返回 false。 differs[form_item]

is_unique

yes 如果表单元素对于参数中的表和字段名称不是唯一的,则返回 false。注意-此规则需要启用 query builder 才能工作。 is_unique[table.field]

min_length

yes 如果表单元素短于参数值,则返回 false。 min_length[3]

max_length

yes 如果表单元素长于参数值,则返回 false。 max_length[12]

exact_length

yes 如果表单元素不是参数值,则返回 false。 exact_length[8]

greater_than_equal_to

yes 如果表单元素小于或等于参数值或不是数字,则返回 false。 greater_than_equal_to[8]

greater_than_equal_to

yes 如果表单元素小于参数值或不是数字,则返回 false。 greater_than_equal_to[8]

less_than

yes 如果表单元素大于或等于参数值或不是数字,则返回 false。 less_than[8]

less_than_equal_to

yes 如果表单元素大于参数值或不是数字,则返回 false。 less_than_equal_to[8]

in_list

yes 如果表单元素不在预定列表中,则返回 false。 in_list[red,blue,green]

alpha

no 如果表单元素包含字母字符以外的任何内容,则返回 false。  

alpha_numeric

no 如果表单元素包含字母数字字符以外的任何内容,则返回 false。  

alpha_numeric_spaces

no 如果表单元素包含字母数字字符或空格以外的任何内容,则返回 false。应该在trim之后使用,以避免在开头或结尾出现空格  

alpha_dash

no 如果表单元素包含字母数字字符、下划线或破折号以外的任何内容,则返回 false。  

numeric

no 如果表单元素包含数字字符以外的任何内容,则返回 false。  

integer

no 如果表单元素包含除整数以外的任何内容,则返回 false。  

decimal

no 如果表单元素包含除十进制数以外的任何内容,则返回 false。  

is_natural

no 如果表单元素包含除自然数以外的任何内容-0、1、2、3 等,则返回 false。  

is_natural_no_zero

no 如果表单元素包含自然数以外的任何内容,但不包含零-1、2、3 等,则返回 false。  

valid_url

no 如果表单元素不包含有效的 url,则返回 false。  

valid_email

no 如果表单元素不包含有效的电子邮件地址,则返回 false。  

valid_emails

no 如果逗号分隔列表中提供的任何值不是有效电子邮件,则返回 false。  

valid_ip

no 如果提供的 ip 无效,则返回 false。接受"ipv4"或"ipv6"的可选参数来指定 ip 格式。  

valid_base64

no 如果提供的字符串包含有效 base64 字符以外的任何内容,则返回 false。  

下一节:codeigniter 会话管理

codeigniter 教程

相关文章