2、后台超级管理员完善密码修改功能
2018-06-17 23:22:13来源:未知 阅读 ()
(1)添加路由(在admin.login中间件)
Route::any('pass','IndexController@pass');
(2) IndexController.php中添加pass方法
注意Input、Crypt、User的引用
先判断新密码是否符合要求以及确认密码,此时若错误,返回的是对象;
之后再查询数据库,判断原密码是否正确,此时错误返回的是字符串
use App\Http\Model\User; use Illuminate\Support\Facades\Input; use Validator; use Crypt;
1 public function pass() 2 { 3 if($input = Input::all()){ 4 //定义每个字段的要求 5 $rules = [ 6 'password'=>'required|between:6,20|confirmed', 7 //不能为空;字符在6-20;与确认密码进行验证; 8 //修改pass.blade.php中确认密码的name,将 password_c改为password_confirmation 9 ]; 10 //重新定义错误信息,格式: '字段.属性'=>'信息' 11 $messages = [ 12 'password.required'=>'新密码不能为空', 13 'password.between'=>'新密码6-20位', 14 'password.confirmed'=>'新密码与确认密码不一致' 15 ]; 16 $validator = Validator::make($input,$rules,$messages); 17 //利用$validator进行验证,如果新密码与确认密码一致,将获取输入的原密码与数据库中的密码比较,若密码相等,将通过验证,更新为新密码 18 if($validator->passes()){ 19 $user = User::first(); 20 $pass = Crypt::decrypt($user->user_pass); 21 if($pass==$input['password_o']){ 22 $user->user_pass = Crypt::encrypt($input['password']); 23 $user->update(); 24 return back()->with('errors','密码修改成功!'); //为了方便,仍然用errors传递25 }else{ 26 //若原密码错误,将返回一个变量到errors中,只是一个字符串 27 return back()->with('errors','原密码错误'); 28 } 29 }else{ 30 //若原密码、确认密码没有通过验证,则利用withErrroes($validator)保存错误信息到errors对象中,并返回到pass.blade.php,所以pass.blade.php需要将其接收 31 //dd($validator->errors()->all()); 32 return back()->withErrors($validator); 33 } 34 35 }else{ 36 return view('admin.pass'); 37 } 38 39 }
(3)pass.blade.php接收错误信息
count($errors)返回数组中元素的个数或是类的属性的个数,如若为字符串返回1;
大于0表明有错误返回,is_object()判断变量是否为对象,是则进行遍历,否则直接输出信息
在<h3>修改密码</h3>后面
@if(count($errors)>0) <div class="mark"> @if(is_object($errors)) @foreach($errors->all() as $error) <p>{{$error}}</p> @endforeach @else <p>{{$errors}}</p> @endif </div> @endif
(4)修改index.blade.php中修改密码按钮
<li><a href="{{url('admin/pass')}}" target="main">修改密码</a></li>
验证:
首先将新密码与确认密码故意输错
再次输入新密码与确认密码符合要求,将原密码输错
再次全部输入正确
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:POJ1753 搜索
下一篇:洛谷P1177快速排序
- 2019.08.02 云从科技C++后台开发 2019-08-16
- 题解:雇佣计划 2019-08-16
- 超级实用的属性浏览器控件--QtTreePropertyBrowser 2019-08-16
- 超级简单的跨平台高性能音视频播放框架QtAv编译指南 2019-08-16
- asp.net强大后台:learun混合工作流框架规范 2018-12-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash