当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

以資料庫驗證登入

发表于: 2013-02-24   作者:dcj3sjt126com   来源:转载   浏览:
yii
摘要: 以資料庫驗證登入 由於 Yii 內定的原始框架程式, 採用綁定在UserIdentity.php 的 demo 與 admin 帳號密碼:    public function authenticate()    {        $users=array( &nbs

以資料庫驗證登入

由於 Yii 內定的原始框架程式, 採用綁定在UserIdentity.php 的 demo 與 admin 帳號密碼:

    public function authenticate()
    {
        $users=array(
            // username => password
            'demo'=>'demo',
            'admin'=>'admin',
        );

而一般的網際程式都希望能夠利用特定的 User 資料表中的帳號與密碼來進行登入驗證, 因此必須進行如下修改:

component\UserIdentity.php 中的

    public function authenticate()
    {
  // 根據使用者所輸入的 $this->username 在 User model 中(即對應資料表 user), 搜尋對應的
  // 用戶名稱
        $user=User::model()->find('LOWER(username)=?',array(strtolower($this->username)));
    // 假如查無此帳號, 則回覆錯誤
        if($user===null)
            $this->errorCode=self::ERROR_USERNAME_INVALID;
    // 若密碼不符, 也是回覆錯誤
        else if(!$user->validatePassword($this->password))
            $this->errorCode=self::ERROR_PASSWORD_INVALID;
        else
        {
    // 順利登入
            $this->_id=$user->id;
            $this->username=$user->username;
            $this->errorCode=self::ERROR_NONE;
        }
        return $this->errorCode==self::ERROR_NONE;
    }

用來利用資料表 user 驗證使用者登入. 

在 User.php Model 中還需要:

/**
 * Generates a salt that can be used to generate a password hash.
 * @return string the salt
 */
protected function generateSalt()
{
    return uniqid('',true);
}

截至目前為止, 已經完成下列事項:

  1. Yii 系統已經正確安裝, framework 目錄位於 www 目錄之外.
  2. Blog 骨架程式已經建立.
  3. Blog 系統所需要的 SQLite 資料表已經建立.
  4. main.php 中的資料連結設定已經配合更改.
  5. 與資料表對應的 model 與 CRUD 運作程式已經建立.
  6. 使用者登入的驗證, 已經由原先的內定帳號密碼, 改為經由 tbl_user 資料表進行驗證.

以資料庫驗證登入

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Delphi APP 開發入門(八)SQLite資料庫 分享: Share on facebook Share on twitter Share on goog
重新複習一下 資料庫同步 – MySQL + replication Master / Slaver 架構就是要讓 MySQL 資料庫系統
今天有個客戶的資料庫發生了異常的鎖定狀況,但並不是鎖死 (Deadlocked) 的情況,所以必須要進一步
緣起: 承繼之前的系統分層概念(請參考:淺談多層式架構 (Multi Tiers)),在資料存取層中,應該只
前言 - 會寫這篇除了是要記錄一下使用的過程之外,也是發現到網路上找來的教學幾乎都是跟其它環境做
前言 - 會寫這篇除了是要記錄一下使用的過程之外,也是發現到網路上找來的教學幾乎都是跟其它環境做
透過上一篇的基本觀念介紹,希望大家應該有一點點感覺了! 這篇我們就來做個簡單的版本演練,加深印
Oracle SQL 以前以為刪除重復資料得幾步寫SQL去執行,后面才慢慢的發現是之前功底不夠,其實刪除重
上一篇博客我们已经把jboss整合进开发工具eclipse里,并建立好了开发项目Person。今天我们就要开始
有了前面做够的准备,我们现在可以来做登入了。 首先打开我们的login.js,在登入按钮事件那里写上 f
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号