`
dcj3sjt126com
  • 浏览: 1877769 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

以資料庫驗證登入

    博客分类:
  • YII
yii 
阅读更多

以資料庫驗證登入

由於 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 資料表進行驗證.
分享到:
评论

相关推荐

    安卓登录注册相关-超酷的登入界面形式.rar

    对于想要提升安卓应用登录注册功能的开发者来说,这是一个宝贵的资料库,可以帮助他们在实际项目中创造出更加吸引用户、功能完善的登录界面。同时,通过源码学习,开发者可以深化对安卓编程的理解,提高问题解决能力...

    星辰飞飞登录器源码

    星辰飞飞登录器源码是用于游戏《星辰飞飞》的客户端与服务器之间的交互平台,它的主要功能是验证用户身份、管理游戏账号、提供安全登录以及处理与...这对于从事游戏开发或相关领域的专业人士来说是非常宝贵的学习资料。

    zoehyh博客

    前端使用React搭配Redux到RWD网站,并使用Node.js与Express构造RESTful API,搭配CLI以ORM方式操作资料库,使用nginx反向代理部署于AWS。目录功能前端首页可以看到最近发布的文章。可以注册部落格。可以登录部落格。...

    亿赛德五金进销存管理系统操作手册.doc

    - **采购订单**:在这一环节,用户可以创建、编辑和跟踪采购订单,记录预计采购的五金商品种类、数量、单价、供应商信息等,以便于与供应商沟通和协调供货。同时,订单状态的更新有助于监控采购进度。 - **采购进仓*...

    pythonFlask:个人轻量型网站

    路由,调试和Web Srver网关接口(WSGI)网页样版是透过Jinja2命令列整和是透过click Flask可以透过不同的套件,扩充支援资料库,网页表单验证,和使用者权限电子邮件大型应用程序架构使用者登入使用者身份使用者简介...

    Android应用源码高仿QQ客户端加服务端加数据库全套.zip

    - 使用OkHttp或Retrofit等库处理HTTP请求,实现与服务器的通信,如登录验证、获取或发送消息、更新用户信息等。 10. **事件监听与响应**: - 使用接口回调、EventBus或LiveData等机制,确保界面与数据模型之间的...

    瑞曼网站网站后台管理模板

    首先,让我们深入探讨一下“商城后台管理模板”的核心——用户商城后台登入管理。一个良好的后台管理系统必须具备安全可靠的用户身份验证机制,确保只有授权人员能够访问。瑞曼模板提供了用户注册、登录功能,可能...

    图书管理系统课程设计报告.doc

    在实现代码部分,报告采用了Qt库中的QSqlDatabase组件连接SQL Server数据库,执行SQL查询来验证用户登录信息。通过比较用户输入的用户名和密码与数据库中的记录,实现用户的身份验证。登录成功后,根据用户类型跳转...

    计算机网络课程设计汇本论文与代码.doc

    每个模块的具体职责,如用户登入类负责验证用户信息,发送类负责构建和发送邮件,都在"类的功能设计"中详细阐述。 4. 在功能模块的实现部分,作者可能详细介绍了如何使用Java编程语言实现这些模块。例如,"程序主...

    c++编写的WOWLauncher登陆器源码

    它的优势在于高效性、灵活性和广泛的库支持。C++源代码使得开发者能够更深入地理解程序的工作原理,并对其进行定制和优化。 【游戏客户端与登录器】 魔兽世界登录器(WOWLauncher)是连接玩家与游戏服务器的重要...

    恩特软件操作流程.doc

    在个人资料页面,可以更新联系信息、岗位职责等,以确保信息的准确性和时效性。 - **设置** 设置功能允许用户自定义工作环境,如界面主题、语言选择、通知提醒等。此外,还可以调整软件的一些高级设置,以适应...

    windows蓝屏错误代码

    请确定以加载所需的系统驱动程序,而且该储存媒体并未毁损。 1006 0×000003EE 储存该档案的外部媒体发出警告,表示该已开启档案已经无效。 1007 0×000003EF 所要求的作业无法在全屏幕模式下执行。 1008 0×000003...

    最新的SysinternalsSuite

     倾印逻辑磁碟管理员的磁碟上之资料库内容,其中描述 Windows 2000 动态磁碟分割。  ListDLLs  列出所有目前载入的 DLL,包括载入位置和他们的版本编号。2.0 版列印载入模组的完整路径名称。  LiveKd  使用 ...

    SysinternalsSuite

     倾印逻辑磁碟管理员的磁碟上之资料库内容,其中描述 Windows 2000 动态磁碟分割。  ListDLLs  列出所有目前载入的 DLL,包括载入位置和他们的版本编号。2.0 版列印载入模组的完整路径名称。  LiveKd  使用 ...

    基于SpringBoot+Vue开发的超市账单信息管理系统源码+sql数据库+项目说明+运行截图(含前端+后端).zip

    【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与...

    酷软系列-SysinternalsSuite (微软经典套装) [评价可免费]

     倾印逻辑磁碟管理员的磁碟上之资料库内容,其中描述 Windows 2000 动态磁碟分割。  ListDLLs  列出所有目前载入的 DLL,包括载入位置和他们的版本编号。2.0 版列印载入模组的完整路径名称。  LiveKd  使用 ...

    IT常见术语与详细解释.doc

    21. Statistical Sampling(统计抽样):经统计机率方式,由总体资料中抽选出部份,经由科学与数学的合理推算,以求了解总体数据之属性。 22. Structured Programming(结构化程序设计):为使程序的可读性提高,更...

    清华大学2006年软件工程期末试卷答案

    完成修改并通过检测后,将修改后的对象登入配置库中,系统自动解除版本的封锁,形成新的版本。 - **CVS**(2分):开发人员检出需要变更的对象,在本地工作空间中进行修改并通过检测后,提交修改并使用系统命令与...

Global site tag (gtag.js) - Google Analytics