【发布时间】: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