控制器site

    public function actionPassword(){
$model = new PasswordForm();
/*判断请求属性
if ($request->isAjax) { // 判断是否为AJAX 请求 };if ($request->isGet) { // 判断是否为GET 请求 };if ($request->isPost) { // 判断是否为POST 请求};if ($request->isPut) { // 判断是否为PUT 请求 }
*/
$request = Yii::$app->request; if ($request->isPost && $model->load(Yii::$app->request->post()) && $model->changePassword()){ Yii::$app->user->logout();
return $this->goHome();
}else{
return $this->render('password',['model'=>$model]);
}
}

passworForm表单模型

    public function changePassword(){
/*rules验证,不习惯用else的话,把else删了自己创建rules*/
// if (!$this->validate()) {
// return null;
// }
$id=Yii::$app->user->id;
$user = User::findIdentity($id);
$password = $user->password_hash;
if (Yii::$app->getSecurity()->validatePassword($this->password,$password)){
if ($this->pass1 == $this->pass2){
$newpass = Yii::$app->getSecurity()->generatePasswordHash($this->pass1);
$user->password=$newpass;
$user->a($id,$newpass);
if ($user->save()){
return true;
}else{
return false;
}
}else{
Yii::$app->session->setFlash('error','两次密码不一样');
return false;
}
}else{
Yii::$app->session->setFlash('error','旧密码错误');
return false;
}
/*findIdentity($id)根据ID获取用户信息 getId()获取用户id*/
}

User模型

    public function a($id,$model){
$user = User::findIdentity($id);   
$user->password_hash=$model;
$user->save();
}

视图password.php

<?php

/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model PasswordForm */ use backend\models\PasswordForm;
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
//
$this->title = '修改密码';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="left">
<div class="row">
<div class="col-md-1">
</div>
<div class="col-md-6">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">修改密码</h3>
</div>
<?php $form = ActiveForm::begin(['id' => 'login-form', 'enableClientValidation' => false]); ?>
<div class="box-body"> <div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">当前用户</label>
<div class="col-sm-9">
<div type="text" readonly="readonly" disabled="disabled" class="form-control" id="user_role" >
<?= Yii::$app->user->identity->username; ?>
</div>
</div><br><br>
</div> <div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">旧密码</label>
<div class="col-sm-9">
<?= $form
->field($model, 'password')
->label(false)
->textInput(['placeholder' => $model->getAttributeLabel('旧密码')]) ?>
</div>
</div> <div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">新密码</label>
<div class="col-sm-9">
<?= $form
->field($model, 'pass1')
->label(false)
->passwordInput(['placeholder' => $model->getAttributeLabel('新密码')]) ?>
</div>
</div> <div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">确认密码</label>
<div class="col-sm-9">
<?= $form
->field($model, 'pass2')
->label(false)
->passwordInput(['placeholder' => $model->getAttributeLabel('确认密码')]) ?>
</div>
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<!-- <label id="msg_info" class="control-label text-green hide"><i class="fa fa-check"></i>修改密码成功</label>-->
<?= Html::submitButton('修改密码', ['class' => 'btn btn-primary']) ?>
</div>
<!-- /.box-footer -->
<?php ActiveForm::end(); ?>
</div>
</div> <div class="col-md-5">
</div>
</div>
</div>

修改密码 MVC的更多相关文章

  1. MVC5 网站开发之六 管理员 2、添加、删除、重置密码、修改密码、列表浏览

    目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网 ...

  2. win7下安装mysql后修改密码

    mysql的安装教程网上很多,此处不过多介绍,个人觉得下面这篇教程是比较好的,一步到位.MySQL 5.7.9 ZIP 免安装版本配置过程_百度经验  http://jingyan.baidu.com ...

  3. linux创建新用户以及修改密码

    1. 使用root账户创建新用户 useradd webuser 2. 修改新增的用户的密码 passwd webuser 这时候会提示你输入新的密码: 注意:不要用su webuser进入该账户修改 ...

  4. ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(3)修改资料、修改密码

    在上一篇博客中实现了用户的注销和登录,其实代码里落了点东西,就是用户登录要更新最后一次登录时间和登录IP,这次补上.今天做修改资料和修改密码,TryUpdateModel是新用到的东西. 目录: AS ...

  5. 学用MVC4做网站六后台管理:6.1.3管理员修改密码

    6.1.3修改密码 需要两个action.一个是点击修改密码的链接要显示修改密码的分部视图(对话框形式):另一个是提交的处理action. 1.打开[AdministratorController]添 ...

  6. MySQL5.7 修改密码

    MySQL5.7 修改密码 mysql> update mysql.user set authentication_string = password('新密码') where user='用户 ...

  7. mysql登录不了及修改密码

    安装mariadb,默认是无密码的,但一般是指要设置密码的.在设置密码时出现各种问题,可能还是不太明白其原理. 一下我尝试了两种方法,但都失败了.下面这两个是我尝试的方法: 一.网上最多的方法是 1. ...

  8. 安装在CloudStack时CentOS6.4中安装MySQL通过mysql_secure_installation方式修改密码

    在安装CloudStack时,通过mysql_secure_installation方式修改密码 01 [root@test ~]# /usr/bin/mysql_secure_installatio ...

  9. mysq安装以及修改密码

    安装版MySQL是不能一键安装的,下载下来是压缩包,解压后只要进行相关配置就可以正常使用: 文章主要是记录一下,以防自己忘记: 1.首先在mysql官网--http://dev.mysql.com/d ...

  10. Atitit 修改密码的功能流程设计 attilax总结

    Atitit 修改密码的功能流程设计 attilax总结 1.1. 注意点1 1.2. 设计修改用户密码功能时把用户ID保存在哪里?1 1.3. Ui设计1 1.4. 功能设计源码1 1.5. Agt ...

随机推荐

  1. .net基础—委托和事件

    委托 委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用. 在实例化委托时,可以将其实例与任何具有兼容签名和返回类型的方法相关联. 可以通过委托实例调用方法.可以将任何可访问类或结构中与 ...

  2. ubuntu的vsftpd

    先输入vsftp -v查看自己的ubuntu是不是已经安装了vsftpd 没有安装的样子 安装的样子 如果没有安装先安装,输入下面的东西 apt-get install vsftpd 进行安装,安装好 ...

  3. Node Sass version 7.0.1 is incompatible with ^4.0.0 node-sass 问题

    执行旧版项目安装依赖时报错 卸载 npm uninstall node-sass sass-loader 安装(need Python27) npm install sass-loader@7.3.1 ...

  4. django:django同步数据库的时候app models表没有成功创建

    解决方式: python3 manage.py makemigrations --empty managerbook  # managerbook就是你的app名字,此处要写成自己的app名字 pyt ...

  5. CSS3-background-image渐变

    实现效果如下: 观察发现鼠标放上去的时候出现了三个变化,渐变背景,文字位移和图片放大. 渐变背景:background-image: linear-gradient(transparent,rgba( ...

  6. cam对象类型

    //此函数的功能是打印当前坐标系试图的所有坐标系名称 static void geom_list_name(tag_t group_tag) { //ask_member_list int count ...

  7. Java-token生成

    1. 引入jar包 <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt< ...

  8. 使用jquery+layui 做一个输入搜索下拉 类似lay-search

    效  果: 因为需要做一个搜索出现下拉然后点击 自动填装input 内容的 东西. 一开始使用lay-search 的控件去弄. 但是无法控制里面的内容.所以用了一些笨方法去弄 废话不说了, html ...

  9. *args、**kwargs参数组

    '''def test(*args): # *agrs接收的是N个位置参数,不能接受关键字参数,转化成元祖 print(args)test(1,2,3,4,5,6)test(*[1,2,4,5,5]) ...

  10. ie8 不支持 trim方法

    那就自己写一个trim()  String.prototype.trim = function() {                 return this.replace(/(^\s*)|(\s* ...