Thanks Graham. Works like a charm
My regards On Nov 18, 12:16 pm, Graham Weldon <[email protected]> wrote: > Just one small change will fix this. > > You're hashing the password, and sending that via email. > Change this part: > > > Your new password: {$user['User']['password']}"; > > to use ['tmp_password'] instead of ['password'] since tmp_password isn't > hashed. > > Cheers, > > Graham Weldon > e. [email protected] > w.http://grahamweldon.com > > On 18/11/2009, at 9:41 PM, appel268576 wrote: > > > Hi there. > > > I have made use of this very handy tutorial that helped me set up a > > user authentication system within about 10 mins. > > > I added an extra function which is basically the ability to allow > > users to request a new password, user receives an email with the new > > password, however this password is the already hashed password, NOT > > WHAT I WANT. > > > Do you know where I could be going wrong? > > > Below is the code > > > VIEW > > > <?php > > echo $form->create('User', array('action' => 'forgotpassword')); > > echo $form->input('email', array('label' => '')); > > echo $form->end('Reset Password'); > > ?> > > > CONTROLLER > > > function forgotpassword() { > > if(!empty($this->data)) { > > $this->User->recursive = 0; > > $user = > > $this->User->findByEmail($this->data['User']['email']); > > if($user) { > > $user['User']['tmp_password'] = > > $this->User->createTempPassword > > (7); > > $user['User']['password'] = > > $this->Auth->password($user['User'] > > ['tmp_password']); > > > if($this->User->save($user, false)) { > > // send a mail to finish the registration > > $this->Email->to = $this->data['User']['email']; > > $this->Email->subject = 'XYZ new password'; > > $this->Email->replyTo = '[email protected]'; > > $this->Email->from = 'XYZ New Password > > <[email protected]>'; > > $this->Email->sendAs = 'text'; > > $this->Email->charset = 'utf-8'; > > $body = "Please visit > > http://localhost:8888/xyz/users/login. > > Your new password: {$user['User']['password']}"; > > > if ($this->Email->send($body)) { > > $this->Session->setFlash(__('Your new password > > has been sent, please check your inbox', true), 'warning'); > > } else { > > $this->Session->setFlash(__('Failed to send the > > confirmation email. Please contact the administrator at supp...@xxx', > > true), 'error'); > > } > > $this->redirect(array('controller' => 'users', > > 'action' => 'login')); > > } > > } else { > > $this->Session->setFlash('No user was found with > > the submitted > > email address.'); > > } > > } > > } > > > MODEL > > > function createTempPassword($len) { > > $pass = ''; > > $lchar = 0; > > $char = 0; > > for($i = 0; $i < $len; $i++) { > > while($char == $lchar) { > > $char = rand(48, 109); > > if($char > 57) $char += 7; > > if($char > 90) $char += 6; > > } > > $pass .= chr($char); > > $lchar = $char; > > } > > return $pass; > > } > > > -- > > > You received this message because you are subscribed to the Google Groups > > "CakePHP" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/cake-php?hl=. -- You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/cake-php?hl=.
