【问题标题】:creating own form validation rule in codeigniter在 codeigniter 中创建自己的表单验证规则
【发布时间】:2014-01-25 04:26:19
【问题描述】:

我正在使用 codeigniter 构建网站。登录页面有一个“忘记密码”链接。当用户点击它时,他被要求输入他的电子邮件,然后将继续进行。我想对用户输入的电子邮件设置一个规则以检查它是否存在是否在数据库中。如果数据库中不存在电子邮件,则应显示该电子邮件不存在的错误消息,并将用户重定向到同一页面。我是codeigniter的新手。请帮助我。提前致谢。这是我尝试过的,但没有成功。

view 'change password'
<!DOCTYPE html> 
<html>
 <head>
   <title> Login</title>
   <link rel="stylesheet" href="http://localhost/cinema/assets/css/form.css">
 </head>
 <body>
 <form action="http://localhost/cinema/verifyque/sec_que" method="post" accept-charset="utf-8" class="username">
  <br>
   <p>
           <label for="email_id">Email ID</label>
       <input type="text" id="username" name="email_id"/>
     </p>

    <input type="submit" name="btnSubmit" class="styled-button-8" value="Submit"
             />
         <font color="red" size="4"><b>
         <?php echo validation_errors(); ?></b></font>

 </form></body></html>


Controller
  function sec_que(){
         $this->load->library('form_validation');
      $this->form_validation->set_rules('email_id', 'Email',    'callback_email_available');
          function email_available($str)
{
// You can access $_POST variable
$this->load->model('user');
$result =   $this->user->emailAvailability($str);
if ($result)
{
    return TRUE;
}else{
    $this->form_validation->set_message('email_available', 'The %s does not exist');
    return FALSE;
}
}
if($this->form_validation->run() === TRUE) { 
       $this->load->model('user');
        $email['email_id'] = $this->input->post('email_id');
        $this->session->set_userdata($email);
       $data['que_id_1']=  $this->user->display_que();
       $data['que_id_2']=  $this->user->display_que2();
       $this->load->view('forgot_password_2', $data);

   }
 else{
 $this->load->view('change_password');
 }
}

Model
  public function emailAvailability($email)
{
    $this->db->where('user_email',$email);
    $query  =   $this->db->get('users');
   return $query->row();
 }

【问题讨论】:

标签: codeigniter


【解决方案1】:

这是您需要使用的代码.. 使用回调方法, 表单验证:

$this->form_validation->set_rules('Email', 'Email', 'callback_emailAvailability');

型号:

public function emailAvailability($email)
    {
        $query  = $this->db->get_where('user_email',$email);
              if($query > 0){
                return true;
               }else{
             return false;
              }
     }

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2012-01-01
    • 2020-07-02
    • 2019-11-21
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多