onunix 2012-08-10 16:06:07 2991次浏览 5条回复 0 0 0

我做了个修改密码的对话框,要求修改密码时要输入旧密码,并且旧密码不对时,要退出,但是那个save调用的是Yii的,当用户点击save时,我怎么插入我的旧密码校对功能。

例如:

http://localhost/Yii/index.php?r=Password/update&id=101

这里的save按钮是自动生成的,我怎么加入我的判断语句呢,我首先想的是在模型文件中写规则,后来觉得不行,因为模型只有一个,创建用户和修改密码使用的同一个模型,如果写规则,这样在创建新用户时,也会进行旧密码的校对的,因此不行。(我的分析应该是正确的吧)

请教有何解决方法。

  • 回复于 2012-08-10 16:11 举报

    beforesave应该可以哦!

  • 回复于 2012-08-10 16:22 举报

    使用beforesave,我也考虑过,但是这样的话,管理员修改密码,自己修改自己的密码,都会调用这个beforesave,但是前者是不校验旧密码的,后者是校验旧密码(管理员修改密码当然不用校验)的,因此也不行。

  • 回复于 2012-08-10 16:35 举报

    你可以在save()之前对旧密码进行验证,用$_POST过来的oldpassword进行验证,如果验证成功则调用save(),不成功则退出

  • 回复于 2012-08-10 16:36 举报

    不小的我说的是不是你那种情况

  • 回复于 2012-08-10 17:00 举报

    这是一条思路,应该是这么做,因为旧密码好像是保存在 Yii::app()->user->password 里面的,直接验证就可以了。但是这就要新增加一个按钮,这个按钮的脚本调用 save(),不知道如何增加该按钮。

您需要登录后才可以回复。登录 | 立即注册