如何在yii 1.1.13中检查数据库中的用户名和密码

时间:2016-05-23 07:04:58

标签: php mysql yii

我对Yii很新  现在我在Xampp服务器上安装了yii 1.1.13版本。我可以查看"我的Web应用程序"页。

在那里,我可以查看登录表单。现在,我想借助我的用户名和密码登录,该用户名和密码存储在数据库中。我怎么能这样做
我检查了一些教程,但我无法理解。请有人解释一下。

My Screenshot of the web page.

1 个答案:

答案 0 :(得分:0)

您需要在数据库中有一个表,用于存储用户和密码数据,例如User以及与此表对应的模型。模型文件默认存储在protected/models

如你所说,你应该注意UserIdentity课程。将其放在protected/components中。此方法应具有私有$_id变量,此变量的getter和负责身份验证的authenticate方法。检查一下:

class UserIdentity extends CUserIdentity
{
    private $_id;
    public function authenticate()
    {
        $record=User::model()->findByAttributes(array('username'=>$this->username));
        if($record===null)
            $this->errorCode=self::ERROR_USERNAME_INVALID;
        else if($record->password!==md5($this->password))
            $this->errorCode=self::ERROR_PASSWORD_INVALID;
        else
        {
            $this->_id=$record->id;
            $this->setState('title', $record->title);
            $this->errorCode=self::ERROR_NONE;
        }
        return !$this->errorCode;
    }

    public function getId()
    {
        return $this->_id;
    }
}

那么authenticate方法会发生什么?您从User表中搜索记录并将其分配给变量。如果找不到记录,则添加用户名无效的错误。比较密码的if..elseif..else语句的下一个元素:如果来自DB的密码不等于输入密码的md5函数的哈希值,则添加错误 - 密码错误。 (请记住,在这种情况下,您需要在DB中存储md5哈希密码!)如果没有错误 - 用户输入了正确的数据,您可以设置ID和一些会话信息。

我认为如果您使用该代码修改代码,您将能够将authenticntice与DB存储的数据一起使用。