控制器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. pat乙级1013数素数

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int ...

  2. keepalived检测UDP端口

    keepalived支持的健康检测方式有:HTTP_GET|SSL_GET.TCP_CHECK.SMTP_CHECK.MISC_CHECK. 由于keepalived自身并不支持udp检测,有TCP_ ...

  3. Word09 会计电算化节节高升office真题

    1.课程的讲解之前,先来对题目进行分析,首先需要在考生文件夹下,将Wrod素材.docx文件另存为Word.docx,后续操作均基于此文件,否则不得分. 2.这一步非常的简单,打开下载素材文件,在[文 ...

  4. Java基础——(综合练习)普通加密

    package com.zhao.test; public class Test18 { /*需求: ​ 某系统的数字密码(大于0),比如1983, 采用加密方式进行传输. 规则如下: ​ 先得到每位 ...

  5. python_print 函数 (99乘法表)

    print 函数末尾自带换行: i = 1 while i <= 5: print("*") i += 1 执行结果: * * * * * 如果想实现不换行,可以使用拼接,或 ...

  6. PostScript语言教程(四、程序变量使用)

    4.1.变量定义 POSTSCRIPT 变量 变量的定义是将比那两名和值用def进行关联类似 /ppi 75 def %将ppi定义为75 /ppi ppi 1 add def %将ppi + 1的值 ...

  7. [OC] 统计代码行数

    1.打开终端 2. cd 路径,或者 输入cd ,然后把要统计代码的工程拖入终端,就会出现工程的路径. 然后按下回车. 3.输入: find . -name "*.m" -or - ...

  8. ??????FormDataAccess

    using Genersoft.Fms.Center.Pub.Com;using Genersoft.Platform.AdpBizIntegration.Entity;using Genersoft ...

  9. iOS OC开发,文件的下载、预览

    /// 下载/打开 - (void)downloadActionWithDownloadString:(NSString *)downloadString{ //url : 下载地址 NSString ...

  10. AirSim 自动驾驶仿真 (2-3) python控制无人机 win10

    1首先搭建好环境 参考 2 python控制 https://blog.csdn.net/Zhaoxi_Li/article/details/108002544 官方代码位置 自己pythonj教程 ...