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

PHP根據session與cookie用戶登錄狀態(tài)操作類的代碼

 更新時間:2016年05月13日 09:13:54   作者:jerrylsxu  
這篇文章主要介紹了PHP根據session與cookie用戶登錄狀態(tài)操作類的相關資料,非常具有參考借鑒價值,需要的朋友可以參考下

 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、在用戶輸入用戶名、密碼處調用來做相關判定

<?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用戶登錄狀態(tài)操作類的相關知識。

下面給大家補充點知識,Cookies 和 Session的區(qū)別

1.cookie 是一種發(fā)送到客戶瀏覽器的文本串句柄,并保存在客戶機硬盤上,可以用來在某個WEB站點會話間持久的保持數據。

2.session其實指的就是訪問者從到達某個特定主頁到離開為止的那段時間。 Session其實是利用Cookie進行信息處理的,當用戶首先進行了請求后,服務端就在用戶瀏覽器上創(chuàng)建了一個Cookie,當這個Session結束時,其實就是意味著這個Cookie就過期了。

注:為這個用戶創(chuàng)建的Cookie的名稱是aspsessionid。這個Cookie的唯一目的就是為每一個用戶提供不同的身份認證。

3.cookie和session的共同之處在于:cookie和session都是用來跟蹤瀏覽器用戶身份的會話方式。

4.cookie 和session的區(qū)別是:cookie數據保存在客戶端,session數據保存在服務器端。
簡單的說,當你登錄一個網站的時候,

· 如果web服務器端使用的是session,那么所有的數據都保存在服務器上,客戶端每次請求服務器的時候會發(fā)送當前會話的sessionid,服務器根據當前sessionid判斷相應的用戶數據標志,以確定用戶是否登錄或具有某種權限。由于數據是存儲在服務器上面,所以你不能偽造,但是如果你能夠獲取某個登錄用戶的 sessionid,用特殊的瀏覽器偽造該用戶的請求也是能夠成功的。sessionid是服務器和客戶端鏈接時候隨機分配的,一般來說是不會有重復,但如果有大量的并發(fā)請求,也不是沒有重復的可能性.

· 如果瀏覽器使用的是cookie,那么所有的數據都保存在瀏覽器端,比如你登錄以后,服務器設置了cookie用戶名,那么當你再次請求服務器的時候,瀏覽器會將用戶名一塊發(fā)送給服務器,這些變量有一定的特殊標記。服務器會解釋為cookie變量,所以只要不關閉瀏覽器,那么cookie變量一直是有效的,所以能夠保證長時間不掉線。如果你能夠截獲某個用戶的 cookie變量,然后偽造一個數據包發(fā)送過去,那么服務器還是認為你是合法的。所以,使用 cookie被攻擊的可能性比較大。如果設置了的有效時間,那么它會將 cookie保存在客戶端的硬盤上,下次再訪問該網站的時候,瀏覽器先檢查有沒有 cookie,如果有的話,就讀取該 cookie,然后發(fā)送給服務器。如果你在機器上面保存了某個論壇 cookie,有效期是一年,如果有人入侵你的機器,將你的 cookie拷走,然后放在他的瀏覽器的目錄下面,那么他登錄該網站的時候就是用你的的身份登錄的。所以 cookie是可以偽造的。當然,偽造的時候需要主意,直接copy

cookie文件到 cookie目錄,瀏覽器是不認的,他有一個index.dat文件,存儲了 cookie文件的建立時間,以及是否有修改,所以你必須先要有該網站的 cookie文件,并且要從保證時間上騙過瀏覽器

5.兩個都可以用來存私密的東西,同樣也都有有效期的說法,區(qū)別在于session是放在服務器上的,過期與否取決于服務期的設定,cookie是存在客戶端的,過去與否可以在cookie生成的時候設置進去。

(1)cookie數據存放在客戶的瀏覽器上,session數據放在服務器上

(2)cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙,如果主要考慮到安全應當使用session

(3)session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能,如果主要考慮到減輕服務器性能方面,應當使用COOKIE

(4)單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的COOKIE不能3K。

(5)所以:將登陸信息等重要信息存放為SESSION;其他信息如果需要保留,可以放在COOKIE中

相關文章

  • php讀取mysql的簡單實例

    php讀取mysql的簡單實例

    讀取數據庫我們需要利用php中的函數連接數據庫然后再利用sql查詢 表中的數據再遍歷出來即可了,下面我們來看一個簡單讀取mysql實例
    2014-01-01
  • php在線打包程序源碼

    php在線打包程序源碼

    把里面的代碼保存為php格式的文件 然后丟到你的站點下面 打開……
    2008-07-07
  • PHP 計算至少是其他數字兩倍的最大數的實現(xiàn)代碼

    PHP 計算至少是其他數字兩倍的最大數的實現(xiàn)代碼

    這篇文章主要介紹了PHP 計算至少是其他數字兩倍的最大數,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • PHP 使用pcntl和libevent 實現(xiàn)Timer功能

    PHP 使用pcntl和libevent 實現(xiàn)Timer功能

    PHP 中實現(xiàn)Timer功能,中間使用到了php多線程,本文給出來pcntl的解釋。
    2013-10-10
  • PHP中使用extract函數

    PHP中使用extract函數

    這篇文章主要介紹了PHP中使用extract函數,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • php同時使用session和cookie來保存用戶登錄信息的實現(xiàn)代碼

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

    下面小編就為大家?guī)硪黄猵hp同時使用session和cookie來保存用戶登錄信息的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
    2016-05-05
  • thinkPHP5.0框架自動加載機制分析

    thinkPHP5.0框架自動加載機制分析

    這篇文章主要介紹了thinkPHP5.0框架自動加載機制,較為詳細的分析了thinkPHP5.0自動加載的概念、原理、用法與相關注意事項,需要的朋友可以參考下
    2017-03-03
  • php實現(xiàn)微信分享朋友鏈接功能

    php實現(xiàn)微信分享朋友鏈接功能

    這篇文章主要為大家詳細介紹了php實現(xiàn)微信分享朋友鏈接,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • php遍歷數組的4種方法總結

    php遍歷數組的4種方法總結

    這篇文章主要介紹了php遍歷數組的4種方法總結,它分分別是foreach循環(huán)、each函數、list函數、for循環(huán),需要的朋友可以參考下
    2014-07-07
  • Discuz論壇標題和底部去掉版權信息實例講解

    Discuz論壇標題和底部去掉版權信息實例講解

    這篇文章主要介紹了Discuz論壇標題和底部去掉版權信息實例講解,有正好遇到這個問題但是不知道修改哪個文件的同學可以跟著操作下,可以節(jié)省很多不必要的時間
    2021-03-03

最新評論