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来执行此示例。此网址可能因您的网站而异。

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

它会产生以下屏幕 -

验证表格

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

未成功验证

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

验证成功

在上面的例子中,我们使用了所需的规则设置。CodeIgniter中有很多规则可用,这些规则如下所述。

验证规则参考

以下是可供使用的所有原生规则的列表 -

____以下给出了可用的最常用的本地规则列表。

规则 参数 描述

required

没有 如果表单元素为空,则返回FALSE。

matches

如果表单元素与参数中的表单元素不匹配,则返回FALSE。 比赛[form_item]

regex_match

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

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[red,blue,green]

alpha

没有 如果表单元素包含除字母字符以外的任何内容,则返回FALSE。

alpha_numeric

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

alpha_numeric_spaces

没有 如果表单元素包含除字母数字字符或空格以外的任何内容,则返回FALSE。修剪后应使用,以避免开始或结束时的空格

alpha_dash

没有 如果表单元素包含除字母数字字符,下划线或短划线之外的任何内容,则返回FALSE。

numeric

没有 如果表单元素包含除数字字符以外的任何内容,则返回FALSE。

integer

没有 如果表单元素包含除整数之外的任何内容,则返回FALSE。

decimal

没有 如果表单元素包含除十进制数之外的任何内容,则返回FALSE。

is_natural

没有 如果表单元素包含除自然数之外的任何内容 - 0,1,2,3等,则返回FALSE。

is_natural_no_zero

没有 如果表单元素包含除自然数之外的任何内容,但不包含零 - 1,2,3等,则返回FALSE。

valid_url

没有 如果表单元素不包含有效的URL,则返回FALSE。

valid_email

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

valid_emails

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

valid_ip

没有 如果提供的IP无效,则返回FALSE。接受可选参数'ipv4'或'ipv6'以指定IP格式。

valid_base64

没有 如果提供的字符串包含除有效Base64字符以外的任何内容,则返回FALSE。