我有密码检索功能。但问题是,验证没有通过我的电子邮件或其他任何方式发送。我的目标是使用 gmail 身份验证重置我的密码。就像您如何在社交媒体上重置密码一样。我在下面提供了我的代码。任何帮助将不胜感激。非常感谢。
观看次数:
<h2>Reset</h2>
<div id="resest_password_form">
<form action="/page/reset_password" method="POST">
<div>
<label for="email">Email:</label>
<input type="email" value="<?php echo set_value('email');?>" name="email" />
</div>
<div>
<input type="submit" name="submit" value="Reset" />
</div>
</form>
<?php
echo validation_errors('<p class="error">');
if(isset($error)){
echo '<p class="error">'.$error.'</p>';
}
?>
</div>
控制器:
//reset_password email checker validation is working
public function reset_password(){
if(isset($_POST['email'])&& !empty($_POST['email'])){
$this->load->library('form_validation');
$this->form_validation->set_rules('email','Email_Address', 'trim|required|min_length[6]|max_length[50]|valid_email|xss_clean');
if ($this->form_validation->run()==FALSE){
$this->load->view('view_reset_password', array('error' => 'Please'));
}else {
$email = trim($this->input->post('email'));
$result = $this->pages->email_exists($email);
if($result){
$this->send_reset_password_email($email, $result);
$this->load->view('vw_register', array('email' => $email));
}else {
$this->load->view('page/view_reset_password', array('error' => 'Please else'));
}
}
} else {
$this->load->view('page/view_reset_password');
}
}
//sending email_verification is not working. I'm not receiving any reset link to my gmail.
private function send_reset_password_email($email, $firstname) {
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'd****@gmail.com',
'smtp_pass' => 'd*****',
'mailtype' => 'html',
'charset' => 'iso-8859-1'
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$this->load->library('email');
$email_code = md5($this->config->item('salt') . $firstname);
$this->email->set_mailtype('html');
$this->email->from($this->config->item('bot_email'), 'Freight Forum');
$this->email->to($email);
$this->email->subject('Please');
$message = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head><body>';
$message .= '<p> Dear' . $firstname .',</p>';
$message .= '<p>WE<strong><a href="' . base_url(). 'page/reset_password_form'.$email .'/'.$email_code .'">click here</a></strong> to reset</p>';
$message .= '<p>Thanks</p>';
$message .= '<p>The Team</p>';
$message .= '</body></html>';
$this->email->message($message);
$this->email->send();
}
型号:
//working
public function email_exists($email){
$sql = "SELECT firstname, email FROM users WHERE email = '{$email}' LIMIT 1";
$result = $this->db->query($sql);
$row = $result->row();
return ($result->num_rows() === 1 && $row->email) ? $row->firstname : false;
}