📜  CodeIgniter-表单验证(1)

📅  最后修改于: 2023-12-03 15:14:11.831000             🧑  作者: Mango

CodeIgniter表单验证

简介

CodeIgniter是一个基于PHP构建的适用于Web应用程序的全功能MVC框架。CodeIgniter框架提供了许多功能,其中之一是表单验证。表单验证是开发Web应用程序时的关键功能之一,以确保数据输入的准确性并防止可能的安全漏洞。

CodeIgniter的表单验证库提供了一种简单但强大的方法来处理表单输入验证。CodeIgniter表单验证库具有以下优点:

  • 容易使用
  • 灵活
  • 支持客户端和服务器端验证
  • 可以自定义
  • 支持重要的验证规则

在本文中,我们将介绍CodeIgniter的表单验证功能及其用法。

配置

CodeIgniter的表单验证配置文件位于application/config目录中的form_validation.php文件中。通过更改此文件中的一些设置,可以自定义表单验证。

以下是默认的form_validation.php文件:

$config = [
    // 表单字段和错误消息数组不能为空
    'required'		=> '{field} 需要填写。',
    // 字段 %s 不是有效的电子邮件地址。
    'valid_email'		=> '不是有效的邮件地址',
    // 字段 %s 不是有效的URL
    'valid_url'		=> '{field} 格式不正确',
    // 字段 %s 不是有效的数字
    'valid_number'		=> '{field} 必须是一个数字',
    // 字段 %s 必须是一个整数
    'integer'                   => '{field} 必须是一个整数',
    // 字段 %s 必须是一个小数
    'decimal'                   => '{field} 必须是一个小数',
    // 字段 %s 必须大于或等于 %s
    'greater_than'		=> '{field} 必须大于 {param}',
    // 字段 %s 必须小于或等于 %s
    'less_than'			=> '{field} 必须小于 {param}',
    // 字段 %s 必须等于 %s
    'is_natural'		=> '{field} 只能包含数字。',
];
基本用法

由于表单验证功能是CodeIgniter的库之一,因此需要使用CodeIgniter的核心库。在控制器中使用此库之前,请确保已加载表单验证库。

以下是使用CodeIgniter的表单验证功能的基本格式:

$this->load->library('form_validation');

// 设置规则
$this->form_validation->set_rules('username', 'Username', 'required');

// 运行验证
if ($this->form_validation->run() == FALSE) {
    // validation failed
} else {
    // validation passed
}

在上面的示例代码中:

  • 使用$this->form_validation加载表单验证库。

  • 使用$this->form_validation->set_rules()方法设置规则。该方法接受3个参数:

    • 字段名 - 要验证的表单字段的名称。
    • 字段标签 - 要显示在验证错误中的字段标签。
    • 规则 - 必填项或包含要执行的验证规则的字符串。
  • 使用$this->form_validation->run()方法运行表单验证。如果通过表单验证,则返回true;否则返回false。

表单验证规则

CodeIgniter的表单验证库支持许多验证规则。以下是一些常见的规则:

required

required规则用于确保输入字段不为空。如果输入字段为空,则表单验证失败。

valid_email

valid_email规则用于确保输入字段是有效的电子邮件地址。如果输入字段不是有效的邮件地址,则表单验证失败。

valid_url

valid_url规则用于确保输入字段是有效的URL。如果输入字段不是有效的URL,则表单验证失败。

valid_number

valid_number规则用于确保输入字段是数字。如果输入字段不是数字,则表单验证失败。

integer

integer规则用于确保输入字段是整数。如果输入字段不是整数,则表单验证失败。

decimal

decimal规则用于确保输入的字段是小数。如果输入字段不是小数,则表单验证失败。

greater_than

greater_than规则用于确保输入字段的值大于指定的值。如果输入字段的值小于或等于指定的值,则表单验证失败。

less_than

less_than规则用于确保输入字段的值小于指定的值。如果输入字段的值大于或等于指定的值,则表单验证失败。

is_natural

is_natural规则用于确保输入字段只包含数字。如果输入字段包含字符或其他非数字内容,则表单验证失败。

max_length

max_length规则用于确保输入字段的值的长度不超过指定值。如果输入字段的长度超过指定值,则表单验证失败。

min_length

min_length规则用于确保输入字段的值的长度不小于指定值。如果输入字段的长度小于指定值,则表单验证失败。

在使用表单验证库时,要记住几个要点:

  • 提供有意义的,可理解的字段标签。
  • 保持规则简单,不要使规则过于复杂或难以理解。
  • 验证输入数据的合法性,避免安全漏洞。
自定义规则

CodeIgniter允许您自定义验证规则。要创建自定义规则,请按照以下步骤操作:

  • 创建一个新的文件,例如application/libraries/MY_Form_validation.php。
  • 在该文件中创建一个新的MY_Form_validation类,该类继承CodeIgniter的Form_validation类。
  • 在该类中创建一个新方法。方法名称必须与自定义规则名称相同。例如,如果您要创建valid_password规则,则方法名称必须为valid_password
  • 在该方法中定义自定义规则。

以下是一个示例自定义规则(假设要创建一个规则以确保密码是8到16个字符长):

class MY_Form_validation extends CI_Form_validation {

   /**
    * validate_password
    *
    * @param string $str
    * @return bool
    */
   public function validate_password($str)
   {
      return (strlen($str) >= 8 && strlen($str) <= 16);
   }
}

在上面的示例代码中,创建了一个名为validate_password的新规则。该规则使用了两个条件:密码长度必须大于或等于8个字符,且小于或等于16个字符。

现在,可以在表单验证中使用规则了。

结论

CodeIgniter的表单验证库是一种简单但强大的方法,用于验证Web应用程序中的表单输入。CodeIgniter的表单验证库易于使用,并且支持许多灵活的验证规则。如果您需要自定义规则,CodeIgniter也允许您轻松创建自定义规则。

# CodeIgniter表单验证

## 简介

CodeIgniter是一个基于PHP构建的适用于Web应用程序的全功能MVC框架。CodeIgniter框架提供了许多功能,其中之一是表单验证。表单验证是开发Web应用程序时的关键功能之一,以确保数据输入的准确性并防止可能的安全漏洞。

CodeIgniter的表单验证库提供了一种简单但强大的方法来处理表单输入验证。CodeIgniter表单验证库具有以下优点:

- 容易使用
- 灵活
- 支持客户端和服务器端验证
- 可以自定义
- 支持重要的验证规则

在本文中,我们将介绍CodeIgniter的表单验证功能及其用法。

## 配置

CodeIgniter的表单验证配置文件位于application/config目录中的form_validation.php文件中。通过更改此文件中的一些设置,可以自定义表单验证。

以下是默认的form_validation.php文件:

$config = [ // 表单字段和错误消息数组不能为空 'required' => '{field} 需要填写。', // 字段 %s 不是有效的电子邮件地址。 'valid_email' => '不是有效的邮件地址', // 字段 %s 不是有效的URL 'valid_url' => '{field} 格式不正确', // 字段 %s 不是有效的数字 'valid_number' => '{field} 必须是一个数字', // 字段 %s 必须是一个整数 'integer' => '{field} 必须是一个整数', // 字段 %s 必须是一个小数 'decimal' => '{field} 必须是一个小数', // 字段 %s 必须大于或等于 %s 'greater_than' => '{field} 必须大于 {param}', // 字段 %s 必须小于或等于 %s 'less_than' => '{field} 必须小于 {param}', // 字段 %s 必须等于 %s 'is_natural' => '{field} 只能包含数字。', ];


## 基本用法

由于表单验证功能是CodeIgniter的库之一,因此需要使用CodeIgniter的核心库。在控制器中使用此库之前,请确保已加载表单验证库。

以下是使用CodeIgniter的表单验证功能的基本格式:

$this->load->library('form_validation');

// 设置规则 $this->form_validation->set_rules('username', 'Username', 'required');

// 运行验证 if ($this->form_validation->run() == FALSE) { // validation failed } else { // validation passed }


在上面的示例代码中:

- 使用`$this->form_validation`加载表单验证库。
- 使用`$this->form_validation->set_rules()`方法设置规则。该方法接受3个参数:

   - 字段名 - 要验证的表单字段的名称。
   - 字段标签 - 要显示在验证错误中的字段标签。
   - 规则 - 必填项或包含要执行的验证规则的字符串。

- 使用`$this->form_validation->run()`方法运行表单验证。如果通过表单验证,则返回true;否则返回false。

## 表单验证规则

CodeIgniter的表单验证库支持许多验证规则。以下是一些常见的规则:

### required

`required`规则用于确保输入字段不为空。如果输入字段为空,则表单验证失败。

### valid_email

`valid_email`规则用于确保输入字段是有效的电子邮件地址。如果输入字段不是有效的邮件地址,则表单验证失败。

### valid_url

`valid_url`规则用于确保输入字段是有效的URL。如果输入字段不是有效的URL,则表单验证失败。

### valid_number

`valid_number`规则用于确保输入字段是数字。如果输入字段不是数字,则表单验证失败。

### integer

`integer`规则用于确保输入字段是整数。如果输入字段不是整数,则表单验证失败。

### decimal

`decimal`规则用于确保输入的字段是小数。如果输入字段不是小数,则表单验证失败。

### greater_than

`greater_than`规则用于确保输入字段的值大于指定的值。如果输入字段的值小于或等于指定的值,则表单验证失败。

### less_than

`less_than`规则用于确保输入字段的值小于指定的值。如果输入字段的值大于或等于指定的值,则表单验证失败。

### is_natural

`is_natural`规则用于确保输入字段只包含数字。如果输入字段包含字符或其他非数字内容,则表单验证失败。

### max_length

`max_length`规则用于确保输入字段的值的长度不超过指定值。如果输入字段的长度超过指定值,则表单验证失败。

### min_length

`min_length`规则用于确保输入字段的值的长度不小于指定值。如果输入字段的长度小于指定值,则表单验证失败。

在使用表单验证库时,要记住几个要点:

- 提供有意义的,可理解的字段标签。
- 保持规则简单,不要使规则过于复杂或难以理解。
- 验证输入数据的合法性,避免安全漏洞。

## 自定义规则

CodeIgniter允许您自定义验证规则。要创建自定义规则,请按照以下步骤操作:

- 创建一个新的文件,例如application/libraries/MY_Form_validation.php。
- 在该文件中创建一个新的MY_Form_validation类,该类继承CodeIgniter的Form_validation类。
- 在该类中创建一个新方法。方法名称必须与自定义规则名称相同。例如,如果您要创建`valid_password`规则,则方法名称必须为`valid_password`。
- 在该方法中定义自定义规则。

以下是一个示例自定义规则(假设要创建一个规则以确保密码是8到16个字符长):

class MY_Form_validation extends CI_Form_validation {

/** * validate_password * * @param string $str * @return bool */ public function validate_password($str) { return (strlen($str) >= 8 && strlen($str) <= 16); } }


在上面的示例代码中,创建了一个名为`validate_password`的新规则。该规则使用了两个条件:密码长度必须大于或等于8个字符,且小于或等于16个字符。

现在,可以在表单验证中使用规则了。

## 结论

CodeIgniter的表单验证库是一种简单但强大的方法,用于验证Web应用程序中的表单输入。CodeIgniter的表单验证库易于使用,并且支持许多灵活的验证规则。如果您需要自定义规则,CodeIgniter也允许您轻松创建自定义规则。