日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

php ci cookie使用,CI框架实现cookie登陆的方法详解

發(fā)布時(shí)間:2025/3/19 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php ci cookie使用,CI框架实现cookie登陆的方法详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文實(shí)例講述了CI框架實(shí)現(xiàn)cookie登陸的方法。分享給大家供大家參考,具體如下:

第一步:login.php

//登陸方法

public function login(){

//如果用戶名和密碼為空,則返回登陸頁面

if(empty($_POST["username"]) || empty($_POST["password"])){

$data["verifycode"] = rand(1000,9999);//生成一個(gè)四位數(shù)字的驗(yàn)證碼

//將驗(yàn)證碼放入session中,注意:參數(shù)是數(shù)組的格式

$this->session->set_userdata($data);

//注意:CI框架默認(rèn)模板引擎解析的模板文件中變量不需要$符號

//$this->parser->parse("admin/login",$data);

//smarty模板變量賦值

$this->tp->assign("verifycode",$data["verifycode"]);

//ci框架在模板文件中使用原生態(tài)的PHP語法輸出數(shù)據(jù)

//$this->load->view("login",$data);//登陸頁面,注意:參數(shù)2需要以數(shù)組的形式出現(xiàn)

//顯示smarty模板引擎設(shè)定的模板文件

$this->tp->display("admin/login.php");

}else{

$username = isset($_POST["username"])&&!empty($_POST["username"])?trim($_POST["username"]):"";//用戶名

$password = isset($_POST["password"])&&!empty($_POST["password"])?trim($_POST["password"]):"";//密碼

$verifycode = isset($_POST["verifycode"])&&!empty($_POST["verifycode"])?trim($_POST["verifycode"]):"";//驗(yàn)證碼

//做驗(yàn)證碼的校驗(yàn)

if($verifycode == $this->session->userdata("verifycode")){

//根據(jù)用戶名及密碼獲取用戶信息,注意:參數(shù)2是加密的密碼

$user_info=$this->user_model->check_user_login($username,md5($password));

if($user_info["user_id"] > 0){

//將用戶id、username、password放入cookie中

//第一種設(shè)置cookie的方式:采用php原生態(tài)的方法設(shè)置的cookie的值

//setcookie("user_id",$user_info["user_id"],86500);

//setcookie("username",$user_info["username"],86500);

//setcookie("password",$user_info["password"],86500);

//echo $_COOKIE["username"];

//第二種設(shè)置cookie的方式:通過CI框架的input類庫

$this->input->set_cookie("username",$user_info["username"],3600);

$this->input->set_cookie("password",$user_info["password"],3600);

$this->input->set_cookie("user_id",$user_info["user_id"],3600);

//echo $this->input->cookie("password");//適用于控制器

//echo $this->input->cookie("username");//適用于控制器

//echo $_COOKIE["username"];//在模型類中可以通過這種方式獲取cookie值

//echo $_COOKIE["password"];//在模型類中可以通過這種方式獲取cookie值

//第三種設(shè)置cookie的方式:通過CI框架的cookie_helper.php函數(shù)庫文件

//這種方式不是很靈驗(yàn),建議大家采取第二種方式即可

//set_cookie("username",$user_info["username"],3600);

//echo get_cookie("username");

//session登陸時(shí)使用:將用戶名和用戶id存入session中

//$data["username"]=$user_info["username"];

//$data["user_id"]=$user_info["user_id"];

//$this->session->set_userdata($data);

//跳轉(zhuǎn)到指定頁面

//注意:site_url()與base_url()的區(qū)別,前者帶index.php,后者不帶index.php

header("location:".site_url("index/index"));

}

}else{

//跳轉(zhuǎn)到登陸頁面

header("location:".site_url("common/login"));

}

}

}

}

第二步:User_model.php

//cookie登陸:檢測用戶是否登陸,如果cookie值失效,則返回false,如果cookie值未失效,則根據(jù)cookie中的用戶名和密碼從數(shù)據(jù)庫中獲取用戶信息,如果能獲取到用戶信息,則返回查詢到的用戶信息,如果沒有查詢到用戶信息,則返回0

public function is_login(){

//獲取cookie中的值

if(empty($_COOKIE["username"]) || empty($_COOKIE["password"])){

$user_info = false;

}else{

$user_info=$this->check_user_login($_COOKIE["username"],$_COOKIE["password"]);

}

return $user_info;

}

//根據(jù)用戶名及加密密碼從數(shù)據(jù)庫中獲取用戶信息,如果能獲取到,則返回獲取到的用戶信息,否則返回false,注意:密碼為加密密碼

public function check_user_login($username,$password){

//這里大家要注意:$password為md5加密后的密碼

//$this->db->query("select * from ");

//快捷查詢類的使用:能為我們提供快速獲取數(shù)據(jù)的方法

//此數(shù)組為查詢條件

//注意:關(guān)聯(lián)數(shù)組

$arr=array(

"username"=>$username,//用戶名

"password"=>$password,//加密密碼

"status"=>1 //賬戶為開啟狀態(tài)

);

//在database.php文件中已經(jīng)設(shè)置了數(shù)據(jù)表的前綴,所以此時(shí)數(shù)據(jù)表無需帶前綴

$query = $this->db->get_where("users",$arr);

//返回二維數(shù)組

//$data=$query->result_array();

//返回一維數(shù)組

$user_info=$query->row_array();

if(!empty($user_info)){

return $user_info;

}else{

return false;

}

}

第三步:其它控制器:

public function __construct(){

//調(diào)用父類的構(gòu)造函數(shù)

parent::__construct();

$this->load->library("tp"); //smarty模板解析類

$this->load->helper("url"); //url函數(shù)庫文件

$this->load->model("user_model");//User_model模型類實(shí)例化對象

$this->cur_user=$this->user_model->is_login();

if($this->cur_user === false){

header("location:".site_url("common/login"));

}else{

//如果已經(jīng)登陸,則重新設(shè)置cookie的有效期

$this->input->set_cookie("username",$this->cur_user["username"],3600);

$this->input->set_cookie("password",$this->cur_user["password"],3600);

$this->input->set_cookie("user_id",$this->cur_user["user_id"],3600);

}

$this->load->library("pagination");//分頁類庫

$this->load->model("role_model");//member_model模型類

$this->load->model("operation_model");//引用operation_model模型

$this->load->model("object_model");//引用object_model模型

$this->load->model("permission_model");//引用permission_model模型

}

更多關(guān)于CodeIgniter相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《ThinkPHP入門教程》、《ThinkPHP常用方法總結(jié)》、《Zend FrameWork框架入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家基于CodeIgniter框架的PHP程序設(shè)計(jì)有所幫助。

總結(jié)

以上是生活随笔為你收集整理的php ci cookie使用,CI框架实现cookie登陆的方法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。