国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

YII框架下實現(xiàn)密碼修改

2019-11-15 02:20:26
字體:
來源:轉載
供稿:網(wǎng)友
YII框架下實現(xiàn)密碼修改
YII2 實現(xiàn)修改密碼功能主要難點:1、密碼加密  YII2對密碼加密生成的結果是不同的,即用相同的初始密碼在不同時間得到的加密結果不同,所以我們不能用常用的方法去驗證密碼是否正確(將密碼加密后與數(shù)據(jù)庫中的密碼相比較)。YII2有自己的加密以及密碼驗證流程。  加密 $hash = Yii::$app->getSecurity()->generatePassWordHash('123456']);  驗證 Yii::$app->getSecurity()->validatePassword('123456', $hash),返回true或false2、返回信息處理  Yii::$app->session->setFlash('contact','舊密碼錯誤');//設置 flash  return $this->goBack();                 //頁面轉跳   Yii::$app->session->getFlash('contact');       //獲取 flash  
public function actionPassword(){        $model=new PasswordForm;        $request = YII::$app->request;        if($request->isPost){            $p = $request->post('PasswordForm');            $id = YII::$app->user->id;            $admin=  Admin::findIdentity($id);            $password = $admin->password;            if(Yii::$app->getSecurity()->validatePassword($p['password'], $password)){                if($p['pass1'] == $p['pass2']){                    $newPass = Yii::$app->getSecurity()->generatePasswordHash($p['pass1']);                    $connection = /Yii::$app->db;                    $r = $connection->createCommand()->update('admin', ['password' => $newPass], 'id='.$id)->execute();                    if($r){                        Yii::$app->user->logout();                        return $this->goHome();                    }else{                        return $this->goBack();                    }                }            }else{                Yii::$app->session->setFlash('contact','舊密碼錯誤');                return $this->redirect(array('site/password'));            }        }else{            return $this->render('password',['model'=>$model]);        }    }

代碼優(yōu)化:主要優(yōu)化細節(jié)如下

  1、將控制器中的主要邏輯代碼移入模型中

  2、優(yōu)化數(shù)據(jù)庫操作

控制器中:

public function actionPassword(){        $model=new PasswordForm;        $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]);        }    }

模型中:

public function changePassword(){        $id = YII::$app->user->id;        $admin=  Admin::findIdentity($id);        $password = $admin->password;        if(Yii::$app->getSecurity()->validatePassword($this->password, $password)){            if($this->pass1 == $this->pass2){                $newPass = Yii::$app->getSecurity()->generatePasswordHash($this->pass1);                $admin->password = $newPass;                if($admin->save()){                    return true;                }else{                    return false;                }            }else{                Yii::$app->session->setFlash('contact','兩次新密碼不相等');                return false;            }        }else{            Yii::$app->session->setFlash('contact','舊密碼錯誤');            return false;        }    }


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 鲁山县| 台湾省| 娄烦县| 崇明县| 龙游县| 翼城县| 天峻县| 微博| 平阴县| 吴江市| 乃东县| 宾川县| 白山市| 土默特右旗| 喀喇| 贺兰县| 连城县| 民和| 长宁县| 绍兴市| 微山县| 隆化县| 满洲里市| 大关县| 苏州市| 五常市| 浮梁县| 桐庐县| 玉环县| 汽车| 长治市| 长丰县| 奎屯市| 广河县| 宁南县| 五台县| 樟树市| 监利县| 北海市| 芦山县| 同仁县|