首页 > 代码库 > Yii数据库用户信息登录
Yii数据库用户信息登录
原本的Yii里面只有admin和demo账号,怎么可以使用数据库里面的Username和Password登陆呢?
数据库:例如DatabaseName。
数据表:例如TableName,表里面有username和password等相关信息。
Yii:
1.在main.php开启‘db‘=array(…………),开启数据库连接(略)
2.生成TableName的model。
3.在UserIdentity.php中改变原本的账号审查。
代码如下:
<?phpclass UserIdentity extends CUserIdentity{parivate $_id;// 定义一个私有变量public function authenticate(){$username=strolower($this->username);$user=User::model()->find(‘LOWER(username)=?‘,array($username));if($username===null){$this->errorCode=self::ERROR_USERNAME_INVALID;}else if(!$username->validatePassword($this->password)){$this->errorCode=self::ERROR_PASSWORD_INVALID;}else{$this->_id=$user->id;$this->username=$username->username;$this->errorCode=self::ERROR_NONE;}return $this->errorCode===self::ERROR_NONE;}public function getId(){return $this->_id;}}
4.在User.php中添加一个validatePassword方法。
public function validatePassword($password){return $this->encrypt($password)===$this->password;}
5.在User.php中添加一个加密的encrypt加密方法:
public function validatePassword($password){return $this->encrypt($password)===$this->password;}
PS:UserController中:
‘user‘=array(‘*‘); 任意的用户
‘user‘=array(‘@‘); 注册的用户
‘user‘=array(‘admin‘);指定的用户
PS:Yii中create账户信息时候,希望保存在数据库中的密码是md5加密的话:
在User.php中添加一个方法:
public function validatePassword($password){return $this->encrypt($password)===$this->password;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。