Php 用于配置文件中表单验证的回调函数
我正在尝试进行电子邮件验证,其中电子邮件的域为Php 用于配置文件中表单验证的回调函数,php,codeigniter,validation,email-validation,Php,Codeigniter,Validation,Email Validation,我正在尝试进行电子邮件验证,其中电子邮件的域为@abc123.com。我已将表单验证规则分离到名为form\u validation.php的application/config文件夹中的另一个文件中。我的一个规则是回拨邮件检查 function email_check($email) { if( strpos($email, '@abc123.com') !== FALSE ) return TRUE; $this->form_validation->set_me
@abc123.com
。我已将表单验证规则分离到名为form\u validation.php
的application/config
文件夹中的另一个文件中。我的一个规则是回拨邮件检查
function email_check($email)
{
if( strpos($email, '@abc123.com') !== FALSE ) return TRUE;
$this->form_validation->set_message('email', 'Please use abc123 email only.');
return FALSE;
}
我应该把函数放在哪里?在主控制器中,或者与form_validation.php
文件一起,我的所有表单验证规则都在哪里?我尝试了两个选项,但在显示错误消息的地方,我得到的输出是无法访问与您的域名电子邮件对应的错误消息。(Email\u check)
form_validation.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/* Form Validation Rules */
$config = array(
'login' => array(
array(
'field' => 'user_id',
'label' => 'User ID',
'rules' => 'trim|required'
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'trim|required'
)
),
'sign_up' => array(
array(
'field' => 'user_id',
'label' => 'User ID',
'rules' => 'trim|required'
),
array(
'field' => 'name',
'label' => 'Name',
'rules' => 'trim|required'
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'trim|required|valid_email|callback_email_check'
),
array(
'field' => 'department',
'label' => 'Department',
'rules' => 'trim|required'
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'trim|required'
),
array(
'field' => 'cfm_password',
'label' => 'Re-type Password',
'rules' => 'trim|required|matches[password]'
)
),
'edit_profile' => array(
array(
'field' => 'new_password',
'label' => 'New Password',
'rules' => 'trim|required'
),
array(
'field' => 'retype_password',
'label' => 'Re-type Password',
'rules' => 'trim|required|matches[new_password]'
)
),
'forgot_password' => array(
array(
'field' => 'user_id',
'label' => 'User ID',
'rules' => 'trim|required'
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'trim|required|valid_email|callback_email_check'
)
)
);
?>
在功能电子邮件检查中,设置消息不正确,应与功能名称相同 改变这个
$this->form_validation->set_message('email', 'Please use abc123 email only.');
到
回电话我也面临同样的问题,这就是我解决问题的方法 您可以在同一控制器中设置电子邮件检查功能。如果在回调中没有收到错误消息,请在运行()中传递$this 如果($this->form_validation->run($this)){…} 以及将控制器方法与规则组关联- $config=array( “控制器/方法”=>数组(…) 查看更多链接:[将控制器方法与规则组关联][1]
干杯 只需在配置中添加这一行:
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'trim|required|valid_email|callback_email_check',
**'errors' => array('email_check' => 'Your Error Message')**
),
回调函数被放置在表单验证中调用它们的同一控制器中。@AnmolRaghuvanshi我已经尝试过了,但它返回了相同的错误。是否发布您的set_规则部分also@AnmolRaghuvanshi这样就可以忽略错误,我正在尝试设置一个规则,以确保用户只使用“@abc123.com”作为域。@AnmolRaghuvanshi已经尝试过了,就像我说的那样,它忽略了对域的检查,因为它总是
TRUE
。我假设它是名称,这是错误的。谢谢。不工作,收到同样的错误任何建议@Wolfgang1983
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'trim|required|valid_email|callback_email_check',
**'errors' => array('email_check' => 'Your Error Message')**
),