php – Yii,实现“用户更改密码”的最佳方式

我正在使用Yii作为应用程序,我正在编写一个非常简单的用户管理,如注册,删除和更新用户……为了更新现有用户,我需要先检查旧密码,然后再将其更改为新插入的密码.所以这是我在表单中的字段:
username:----
old_password:---
new_password:---

我的用户表看起来像这样:

id,username,password

如何在使用new_password更新之前验证old_password?我知道通常的PHP编码,但我想知道是否有任何Yii技巧自动执行此操作…

提前致谢

@H_502_12@
它的简单创建一个具有更新传递逻辑的动作.

在这种情况下,将表单设置为新操作actionChangePass并以您希望的方式验证.

一个粗略的例子可以这样说

public function actionChangePass($id)
    {  
    $user = loadModel($id)
    if(md5($_POST['User']['old_password']) === $user->password)
    {
       $user->setScenario('changePassword');
       $user->attributes = $_POST['User'];                
       $user->password = md5($_POST['User']['new_password']);
       if($user->save())
         Yii::app()->user->setFlash('passChanged','Your password has been changed <strong>successfully</strong>.');
    }            
    else
    {
      Yii::app()->user->setFlash('passChangeError','Your password was not changed because it did not matched the <strong>old password</strong>.');                    
    }  
 }

还要确保您的用户用户模型中有$old_password.您还可以在模型规则中进行一些验证,以使新密码成为必需

可能会有一些不同的方式,但我这样做

还要创建自定义验证方案changePassword

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...