在Codeigniter中获取form_validation> set_rules> valid_email错误

问题描述

在codeigniter框架中,我的代码是:

$this->form_validation->set_rules('mobile','Mobile Number','trim|numeric|exact_length[10]');
$this->form_validation->set_rules('email','Email Address','trim|valid_email');
$this->form_validation->set_rules('address','Address','trim');
if($this->form_validation->run() == TRUE){
    $this->update_info();
}

以上代码会产生以下错误:

An uncaught Exception was encountered
Type: Error
Message: Call to undefined method CI_Form_validation::substr()
Filename: D:\xampp\htdocs\ci\system\libraries\Form_validation.php
Line Number: 1241

仅检查时,我尝试了两件事并已消除错误,但这不是正确的方法,因此我需要正确的解决方案。

  1. valid_email中删除了set_rules之后,代码便开始工作了。
  2. 注释文件中的Line Number: 1241(我出错了)system\libraries\Form_validation.php
  3. 后,代码正常工作

1241: $str = self::substr($str,++$atpos).idn_to_ascii(self::substr($str,$atpos),INTL_IDNA_VARIANT_UTS46);

Codeigniter版本:3.1.11
PHP版本:7.4.2

解决方法

添加电子邮件助手

$this->load->helper('email');

以这种方式设置电子邮件验证

$this->form_validation->set_rules('email','Email','trim|required|valid_email|xss_clean');

用于手机号码验证

$this->form_validation->set_rules('mobile','Mobile Number ','required|regex_match[/^[0-9]{10}$/]'); //{10} for 10 digits number

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...