【问题标题】:Rule for Checking Old Password and New Password新旧密码校验规则
【发布时间】:2015-04-02 14:07:06
【问题描述】:

我正在使用确认密码检查旧密码和新密码。

在这里我想检查一下 OldPassword 和 New Password 是否应该不一样。

我该怎么做?

这是我的规则:

   public static $rulespwd = array('OldPassword' => 'required|pwdvalidation',
        'NewPassword' => 'required|confirmed|min:1|max:10',
        'NewPassword_confirmation' => 'required',
        );

这是我用于验证的控制器代码:

$PasswordData = Input::all();
        Validator::extend('pwdvalidation', function($field, $value, $parameters)
        {
            return Hash::check($value, Auth::user()->password);
        });

        $messages = array('pwdvalidation' => 'The Old Password is Incorrect');

        $validator = Validator::make($PasswordData, User::$rulespwd, $messages);
        if ($validator->passes()) 
        {
            $user = User::find(Auth::user()->id);
            $user->password = Input::get('NewPassword');
            $user->save();
            return Redirect::to('changepassword')->with('Messages', 'The Password Information was Updated');
        }

注意:我正在使用模型作为验证规则。我如何在模型中执行此操作??

【问题讨论】:

  • 请永远不要将密码限制为 10 个字符 - 这非常糟糕,会让小耶稣哭泣
  • 是的,谢谢你的建议,我会更新相同的:)

标签: php laravel laravel-4 laravel-validation


【解决方案1】:

只需使用different 验证规则 - as described in the Laravel docs

public static $rulespwd = array('OldPassword' => 'required|pwdvalidation',
    'NewPassword' => 'required|confirmed|min:6|max:50|different:OldPassword',
    'NewPassword_confirmation' => 'required',
    );

另外 - 为什么您将密码限制为 10 个字符?这很愚蠢——根本没有理由限制它。您所做的只是降低应用程序的安全性。

【讨论】:

  • @Chennai 6 分钟结束 ;)
猜你喜欢
  • 2015-10-10
  • 2017-06-29
  • 2020-07-17
  • 1970-01-01
  • 2018-02-10
  • 2011-03-06
  • 2013-10-18
  • 2018-04-17
  • 2012-06-10
相关资源
最近更新 更多