欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php同時使用session和cookie來保存用戶登錄信息的實現(xiàn)代碼

 更新時間:2016年05月13日 09:43:29   投稿:jingxian  
下面小編就為大家?guī)硪黄猵hp同時使用session和cookie來保存用戶登錄信息的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧

1、用戶登錄狀態(tài)操作類UserLogin

<?php

final class UserLogin {

 public function __construct() {
  
 }

 public static function getUserInfo() {
  if (isset($_COOKIE["user_id"])&&$_COOKIE["user_id"]&&(trim($_COOKIE["user_id"])!="")) {
   if (isset($_SESSION["USER_INFO"]))
    return $_SESSION["USER_INFO"];
   $dao = new UserDao();
   $user = $dao->find($_COOKIE["user_id"]);
   if ($user) {
    $_SESSION["USER_INFO"] = $user;
    setcookie("docloud_sid", session_id(), time() + 36000);
    setcookie("user_id", $_COOKIE["user_id"], time() + 36000);
    
    if (array_key_exists("selected_prj_id", $_COOKIE))
     setcookie("selected_prj_id", $_COOKIE["selected_prj_id"], time() + 36000);
    
    if (array_key_exists("selected_class_id", $_COOKIE))
     setcookie("selected_class_id", $_COOKIE["selected_class_id"], time() + 36000);
    
    if (array_key_exists("selected_image_id", $_COOKIE))
     setcookie("selected_image_id", $_COOKIE["selected_image_id"], time() + 36000);
    
    if (array_key_exists("test_image_ids", $_COOKIE))
     setcookie("test_image_ids", $_COOKIE["test_image_ids"], time() + 36000);
    
    if (array_key_exists("upload_image_ids", $_COOKIE))
     setcookie("upload_image_ids", $_COOKIE["upload_image_ids"], time() + 36000);
    return $user;
   }
  }
  self::clearCookie();
  return null;
 }

 public static function setUserInfo($userInfo) {
  $_SESSION["USER_INFO"] = $userInfo;
  setcookie("docloud_sid", session_id(), time() + 36000);
  setcookie("user_id", $userInfo->getId(), time() + 36000);
 }

 public static function isLogin() {
  if (self::getUserInfo()) {
   return true;
  }
  return false;
 }

 public static function delUserInfo() {
  self::clearCookie();
  session_destroy();
 }
 
 private static function clearCookie() {
  setcookie("docloud_sid", "", time() - 36000);
  setcookie("user_id", "", time() - 36000);
  setcookie("selected_prj_id", "", time() - 36000);
  setcookie("selected_class_id", "", time() - 36000);
  setcookie("selected_image_id", "", time() - 36000);
  setcookie("test_image_ids", "", time() - 36000);
  setcookie("upload_image_ids", "", time() - 36000);
 }

}

?>

2、在用戶輸入用戶名、密碼處調(diào)用來做相關(guān)判定

<?php
require_once 'Init.php';

// if logged in, logout
if (UserLogin::isLogin() && $_COOKIE["user_id"]==1) {
 UserLogin::delUserInfo();
}
else if (UserLogin::isLogin()){
 Utils::redirect('welcome');
}

$username = null;
$password = null;

$msg = "";

if (isset($_POST['username']) && isset($_POST['password'])) {
 $username = addslashes(trim(stripslashes($_POST ['username'])));
 $password = addslashes(trim(stripslashes($_POST ['password'])));
 // validate
 $errors = LoginValidator::validate($username, $password);
 
 if (empty($errors)) {
  // save
  $dao = new UserDao();
  $user = $dao->findByName($username);
  $last_login_ip = Utils::getIpAddress();
  $user->setLastLoginIp($last_login_ip);
  $now = new DateTime();
  $user->setLastLoginTime($now);
  $dao->save($user);
  UserLogin::setUserInfo($user);
  Flash::addFlash('登錄成功!');
  Utils::redirect('welcome');
 }
 
 foreach ($errors as $e) {
  $msg .= $e->getMessage()."<br>";
 }
}

?>

以上這篇php同時使用session和cookie來保存用戶登錄信息的實現(xiàn)代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • yii2緩存Caching基本用法示例

    yii2緩存Caching基本用法示例

    這篇文章主要介紹了yii2緩存Caching基本用法,結(jié)合實例形式分析了Yii2中緩存的配置、設(shè)置、讀取及判斷等基本用法,需要的朋友可以參考下
    2016-07-07
  • PHP實現(xiàn)采集中國天氣網(wǎng)未來7天天氣

    PHP實現(xiàn)采集中國天氣網(wǎng)未來7天天氣

    這篇文章主要介紹了PHP實現(xiàn)采集中國天氣網(wǎng)未來7天天氣方法,本文詳細的講解了需求的實現(xiàn),也可以做為學習PHP采集的入門教程,需要的朋友可以參考下
    2014-10-10
  • PHP生成唯一ID之SnowFlake算法

    PHP生成唯一ID之SnowFlake算法

    snowflake算法是個啥?首先我來提出個問題,怎么在分布式系統(tǒng)中生成唯一性id并保持該id大致自增?在twitter中這是最重要的業(yè)務(wù)場景,于是twitter推出了一種snowflake算法。
    2016-12-12
  • PHP SPL標準庫之SplFixedArray使用實例

    PHP SPL標準庫之SplFixedArray使用實例

    這篇文章主要介紹了PHP SPL標準庫之SplFixedArray使用實例,SplFixedArray主要是處理數(shù)組相關(guān)的主要功能,它是固定長度的,比普通的數(shù)組處理更快,需要的朋友可以參考下
    2015-05-05
  • 三個思路解決laravel上傳文件報錯:413 Request Entity Too Large問題

    三個思路解決laravel上傳文件報錯:413 Request Entity Too Large問題

    上傳圖片的時候,是用laravel自帶的上傳圖片的方法,一下氣上傳了20張,結(jié)果就無情報錯:413 Request Entity Too Large,后面查一下,這個報錯信息是nginx報的錯誤,不是php報的錯誤。也就是說在上傳圖片的時候被nginx攔截了
    2017-11-11
  • tp5使用layui實現(xiàn)多個圖片上傳(帶附件選擇)的方法實例

    tp5使用layui實現(xiàn)多個圖片上傳(帶附件選擇)的方法實例

    在以前項目中遇到有上傳圖片都是用 web Uploader插件上傳,因為我現(xiàn)在項目都在使用 layui 所以今天趁著有時間寫一個tp5結(jié)合layui上傳圖片的示例,感興趣的可以了解一下
    2021-10-10
  • 基于PHP實現(xiàn)等比壓縮圖片大小

    基于PHP實現(xiàn)等比壓縮圖片大小

    通過本段代碼給大家介紹基于php實現(xiàn)等比壓縮圖片大小的相關(guān)知識,代碼簡單易懂,對php壓縮圖片相關(guān)知識感興趣的朋友參考下吧
    2016-03-03
  • DISCUZ 分頁代碼

    DISCUZ 分頁代碼

    DISCUZ 分頁代碼...
    2007-01-01
  • PHP header()函數(shù)使用詳細(301、404等錯誤設(shè)置)

    PHP header()函數(shù)使用詳細(301、404等錯誤設(shè)置)

    用PHP header()函數(shù)實現(xiàn)頁面404錯誤提示功能,特整理了PHP header()函數(shù)的詳細使用分享給大家,需要大家多多支持我們
    2013-04-04
  • 如何使用OPCache提升PHP的性能

    如何使用OPCache提升PHP的性能

    這篇文章主要介紹了如何使用OPCache提升PHP的性能,幫助大家更好的理解和學習使用PHP,感興趣的朋友可以了解下
    2021-04-04

最新評論