91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在CI框架中利用cookie實現一個登陸功能

發布時間:2021-01-22 15:43:24 來源:億速云 閱讀:158 作者:Leah 欄目:開發技術

怎么在CI框架中利用cookie實現一個登陸功能?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

第一步:login.php

//登陸方法
 public function login(){
  //如果用戶名和密碼為空,則返回登陸頁面
  if(empty($_POST['username']) || empty($_POST['password'])){
   $data['verifycode'] = rand(1000,9999);//生成一個四位數字的驗證碼
   //將驗證碼放入session中,注意:參數是數組的格式
   $this->session->set_userdata($data);
   //注意:CI框架默認模板引擎解析的模板文件中變量不需要$符號
   //$this->parser->parse("admin/login",$data);
   //smarty模板變量賦值
   $this->tp->assign("verifycode",$data['verifycode']);
   //ci框架在模板文件中使用原生態的PHP語法輸出數據
   //$this->load->view('login',$data);//登陸頁面,注意:參數2需要以數組的形式出現
   //顯示smarty模板引擎設定的模板文件
   $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']):'';//驗證碼
   //做驗證碼的校驗
   if($verifycode == $this->session->userdata('verifycode')){
    //根據用戶名及密碼獲取用戶信息,注意:參數2是加密的密碼
    $user_info=$this->user_model->check_user_login($username,md5($password));
    if($user_info['user_id'] > 0){
     //將用戶id、username、password放入cookie中
     //第一種設置cookie的方式:采用php原生態的方法設置的cookie的值
     //setcookie("user_id",$user_info['user_id'],86500);
     //setcookie("username",$user_info['username'],86500);
     //setcookie("password",$user_info['password'],86500);
     //echo $_COOKIE['username'];
     //第二種設置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值
     //第三種設置cookie的方式:通過CI框架的cookie_helper.php函數庫文件
     //這種方式不是很靈驗,建議大家采取第二種方式即可
     //set_cookie("username",$user_info['username'],3600);
     //echo get_cookie("username");
     //session登陸時使用:將用戶名和用戶id存入session中
     //$data['username']=$user_info['username'];
     //$data['user_id']=$user_info['user_id'];
     //$this->session->set_userdata($data);
     //跳轉到指定頁面
     //注意:site_url()與base_url()的區別,前者帶index.php,后者不帶index.php
     header("location:".site_url("index/index"));
    }
   }else{
    //跳轉到登陸頁面
    header("location:".site_url("common/login"));
   }
  }
 }
}

第二步:User_model.php

//cookie登陸:檢測用戶是否登陸,如果cookie值失效,則返回false,如果cookie值未失效,則根據cookie中的用戶名和密碼從數據庫中獲取用戶信息,如果能獲取到用戶信息,則返回查詢到的用戶信息,如果沒有查詢到用戶信息,則返回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;
 }
 //根據用戶名及加密密碼從數據庫中獲取用戶信息,如果能獲取到,則返回獲取到的用戶信息,否則返回false,注意:密碼為加密密碼
 public function check_user_login($username,$password){
  //這里大家要注意:$password為md5加密后的密碼
  //$this->db->query("select * from ");
  //快捷查詢類的使用:能為我們提供快速獲取數據的方法
  //此數組為查詢條件
  //注意:關聯數組
  $arr=array(
   'username'=>$username,//用戶名
   'password'=>$password,//加密密碼
   'status'=>1   //賬戶為開啟狀態
  );
  //在database.php文件中已經設置了數據表的前綴,所以此時數據表無需帶前綴
  $query = $this->db->get_where("users",$arr);
  //返回二維數組
  //$data=$query->result_array();
  //返回一維數組
  $user_info=$query->row_array();
  if(!empty($user_info)){
   return $user_info;
  }else{
   return false;
  }
}

第三步:其它控制器:

public function __construct(){
  //調用父類的構造函數
  parent::__construct();
  $this->load->library('tp'); //smarty模板解析類
  $this->load->helper('url'); //url函數庫文件
  $this->load->model("user_model");//User_model模型類實例化對象
  $this->cur_user=$this->user_model->is_login();
  if($this->cur_user === false){
   header("location:".site_url("common/login"));
  }else{
   //如果已經登陸,則重新設置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模型
}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

前郭尔| 新绛县| 交口县| 廉江市| 望城县| 若尔盖县| 亳州市| 宣化县| 盐池县| 麻城市| 延庆县| 肇东市| 普宁市| 定日县| 平乡县| 鄂托克旗| 开封市| 水富县| 山阳县| 海原县| 宽甸| 绥阳县| 武汉市| 镇平县| 绥棱县| 哈巴河县| 安西县| 化州市| 栾城县| 年辖:市辖区| 桐城市| 萨嘎县| 桃源县| 米泉市| 苏尼特右旗| 磐石市| 遂川县| 仙桃市| 尼木县| 略阳县| 治多县|