开发学院

您的位置:首页>教程>正文

教程正文

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';

  让我们通过访问浏览器中的以下网址来执行此示例。此网址可能因您的网站而异。

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

  它将产生以下内容。

validation_form.jpg

  在提交表单之前,我们已经在控制器name必填字段中添加了验证。因此,如果您在name字段中没有输入任何内容的情况下单击提交按钮,那么您将被要求在提交之前输入名称,如下图所示。

not_validated.jpg

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

validated_successfully.jpg

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

  下面是常用的校验规则列表

  • required:必填项

  • matches:如果表单元素与参数中的元素不匹配,则返回FALSE

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

  • differs:如果表单元素与参数中的表单元素没有不同,则返回FALSE。

  • is_unique:如果表单元素对于参数中的表和字段名称不是唯一的,则返回FALSE。注意-此规则要求启用查询生成器才能工作。

  • min_length:如果表单元素短于参数值,则返回FALSE。

  • max_length:如果表单元素比参数值长,则返回FALSE。

  • exact_length:如果表单元素不完全是参数值,则返回FALSE。

  • greater_than:如果表单元素小于或等于参数值或者不是数值,则返回FALSE。

  • greater_than_equal_to:如果表单元素小于参数值,或者不是数值,则返回FALSE。

  • less_than:如果表单元素大于或等于参数值或者不是数值,则返回FALSE。

  • less_than_equal_to:如果表单元素大于参数值,或者不是数值,则返回FALSE。

  • in_list: 如果表单元素不在列表中,则返回FALSE。

  • 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。

  • valid_url:如果表单元素不包含有效的网址,则返回FALSE。

  • 如果表单元素不包含有效的网址,则返回FALSE。

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

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

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

  • valid_ip:如果提供的IP无效,则返回FALSE。接受可选参数“ipv4”或“ipv6”来指定IP格式。

  • valid_base64 :Returns FALSE if the supplied string contains anything other than valid Base64 characters.