Réinitialiser le mot de passe de la fonction en php codeigniter
Je suis en train d'écrire réinitialiser le mot de passe de la fonction en php codeigniter et de l'esprit l'esprit en ne cliquant pas par où commencer et quelle est la meilleure façon de le faire svp aider
my db as like this
CREATE TABLE `members` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`verifystring` varchar(15) NOT NULL,
`lostkey` varchar(100) NOT NULL,
`active` enum('0','1') NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
et la fonction va comme ceci
//mot de passe oublié
public function forget_password(){
$this->form_validation->set_rules('email','Email Address','xss_clean|required|valid_email|callback_reset_password');
if($this->form_validation->run() == FALSE){
$this->load->view('account/forget_password');
}else{
//send an email
$this->load->library('email');
$this->email->set_newline("\r\n");
$this->email->from('[email protected]', 'Raju');
$this->email->to('[email protected]');
$this->email->subject('Email my');
$key = 12334455;
$message = "Please click this url to change your password ". base_url()."reset_now/".$key ;
$message .="<br/>Thank you very much";
$this->email->message($message);
if($this->email->send())
{
echo 'Please check your email to reset password.';
}
else
{
show_error($this->email->print_debugger());
}
}
}
//email check for forget password
function reset_password($email){
$query = $this->db->get_where('members', array('email'=>$email));
if(!$query->num_rows()>0){
$this->form_validation->set_message('forget_email_check', 'The %s does not exists in our database');
return FALSE;
}else{
//check database fields
/*
$this->db->where('email', $email);
$this->db->limit(1);
$Q = $this->db->get('members');
if($Q->num_rows()>0){
$data = $Q->result_array();
echo $data[0]['username'].'<br/>';
echo $data[0]['password'].'<br/>';
}
*/
echo '<br/>'. $email.'<br/>';
}
//$query->free_result();
//return true;
}
OriginalL'auteur ktm | 2011-09-28
Vous devez vous connecter pour publier un commentaire.
C'est simple. Tout d'abord demander à l'utilisateur d'entrer son nom d'utilisateur ou identifiant ou e-mail ou quelles que soient leurs références de connexion est. (Pas le mot de passe bien sûr). Maintenant, avec cette valeur, interroger la base de données et si la valeur existe, suffit de récupérer l'adresse mail correspondant à. (Si la connexion identifiant de messagerie, puis il suffit de vérifier la présence de l'adresse e-mail dans la base de données). Ensuite,
À partir de maintenant, chaque fois que l'utilisateur se connecte, l'application ne va pas demander à l'utilisateur de réinitialiser le mot de passe utilisateur.
Plus un à Ranger, c'est une idée horrible. Un e-mail de réinitialisation de lien est un lien pour réinitialiser le mot de passe, il ne faut jamais automatiquement réinitialiser le mot de passe pour la raison ci-dessus. La solution ci-dessus est faux.
OriginalL'auteur MT.