Я строю страницу, на которой пользователь может изменить свой пароль. Они должны заполнить два поля, и оба должны совпадать, прежде чем они будут изменены, а затем они будут перенаправлены на страницу своего профиля при успешном завершении.Изменение пароля для пользователя в CakePHP 2.1
До сих пор я построил следующий метод:
public function changePassword()
{
$user = $this->User->find('first', array(
'conditions' => array(
'User.id' => $this->Auth->user('id'))
));
if ($this->request->is('post') || $this->request->is('put'))
{
if ($this->User->save($this->request->data))
{
$this->User->saveField('password', AuthComponent::password($this->request->data['User']['password2']));
$this->Session->setFlash(__('Your password has been changed!'));
$this->redirect(array('controller'=>'profiles','action'=>'view','userName'=>$user['User']['username']));
}
else
{
$this->Session->setFlash(__('Whoops! Something went wrong... try again?'));
}
}
}
и это форма:
<?php echo $this->Form->create(); ?>
<?php echo $this->Form->input('id',array('type'=>'hidden')); ?>
<?php echo $this->Form->input('password1',array('type'=>'text','label'=>array('text'=>'Enter your new password'))); ?>
<?php echo $this->Form->input('password2',array('type'=>'text','label'=>array('text'=>'Confirm your new password'))); ?>
<button type="submit">Save</button>
<?php echo $this->Form->end(); ?>
Так как вы можете увидеть план, чтобы принять то, что он говорит в password2 и сохранить это в поле пароля базы данных, используя хеширование безопасности. Но то, что происходит, это создание нового пользователя вместо этого, но с пустыми данными ... Что я делаю неправильно здесь? И как мне сравнить два поля пароля ...
вы можете позволить поведение заботиться о том, что: http://www.dereuromark.de/2011/08/25/working-with- passwords-in-cakephp/- или, по крайней мере, взять некоторые из предлагаемых функций, чтобы найти подходящее решение для вашего собственного подхода. – mark
Почему мой код создает нового пользователя? – Cameron
Для сравнения с полями паролей. http://stackoverflow.com/questions/17185246/password-confirm-validation-cakephp/18017468#18017468 – Ketan