控制器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. knife4j 整合springboot

    1.添加依赖 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife ...

  2. 89、des加密算法

    import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpe ...

  3. [AGC043B] 123 Triangle

    个人思路: 首先,经过 \(1\) 轮就没有 \(3\) 了. 先考虑能否递推前 \(i\) 个数的答案,发现不行. 再考虑能否推出 \(i\) 个数的答案的计算公式,也发现不行. 然后就不会了. 正 ...

  4. MongoDB 用户及权限增删

    本文主要是MongoDB4.X的操作 一.MongoDB用户创建   MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问. 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限 ...

  5. Unity 消息机制

    最近有新项目需要和同事合作开发,他做UI 我做网络层,做着做着发现 如果我们要相对独立完成自己的开发任务,那我们的代码耦合得减少,不然 一个人代码有大改的时候,另一个人也要进行大幅修改,这样不便于后期 ...

  6. web server 接口调用

    1. 生成客户端代码 2.调用接口 import javax.xml.ws.Service;public static NotificationServiceDevImplPortType mokaA ...

  7. cadence报错because the library part is newer than the part in the design cache.Select the part in the cache and choose Design-Update Cache,and then place the part again.

    cadence报错because the library part is newer than the part in the design cache.Select the part in the ...

  8. js检测邮箱格式,正则检测邮箱格式

    网上搜了关于邮箱格式的检测,发现很多不太适用,我自己写了一个,可以检测有开头和没开头的,又可以检测@,@qq. 后的格式 var myReg=/^(\w|(\.\w+))+@([a-zA-Z0-9_- ...

  9. docker部署服务器

    Docker部署PostGres docker run -d --name postgres --restart always -e POSTGRES_USER='postgres' -e POSTG ...

  10. JS事件中的target,currentTarget及事件委托

    1.target只存在其事件流的目标阶段,指向事件发生时的元素. 2.currentTarget:可位于捕获,目标和冒泡阶段,始终指向绑定事件的元素.如div>ul>li结构,事件委托在d ...