茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    PHP根據(jù)session與cookie用戶登錄狀態(tài)操作類的代碼
    來(lái)源:易賢網(wǎng) 閱讀:1164 次 日期:2016-08-23 15:38:18
    溫馨提示:易賢網(wǎng)小編為您整理了“PHP根據(jù)session與cookie用戶登錄狀態(tài)操作類的代碼”,方便廣大網(wǎng)友查閱!

    這篇文章主要介紹了PHP根據(jù)session與cookie用戶登錄狀態(tài)操作類的相關(guān)資料,非常具有參考借鑒價(jià)值,需要的朋友可以參考下

    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)用來(lái)做相關(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>";

    }

    }

    ?>

    一個(gè)通過代碼給大家介紹了PHP根據(jù)session與cookie用戶登錄狀態(tài)操作類的相關(guān)知識(shí)。

    下面給大家補(bǔ)充點(diǎn)知識(shí),Cookies 和 Session的區(qū)別

    1.cookie 是一種發(fā)送到客戶瀏覽器的文本串句柄,并保存在客戶機(jī)硬盤上,可以用來(lái)在某個(gè)WEB站點(diǎn)會(huì)話間持久的保持?jǐn)?shù)據(jù)。

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

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

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

    4.cookie 和session的區(qū)別是:cookie數(shù)據(jù)保存在客戶端,session數(shù)據(jù)保存在服務(wù)器端。

    簡(jiǎn)單的說(shuō),當(dāng)你登錄一個(gè)網(wǎng)站的時(shí)候,

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

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

    cookie文件到 cookie目錄,瀏覽器是不認(rèn)的,他有一個(gè)index.dat文件,存儲(chǔ)了 cookie文件的建立時(shí)間,以及是否有修改,所以你必須先要有該網(wǎng)站的 cookie文件,并且要從保證時(shí)間上騙過瀏覽器

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

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

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

    (3)session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會(huì)比較占用你服務(wù)器的性能,如果主要考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE

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

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

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:PHP根據(jù)session與cookie用戶登錄狀態(tài)操作類的代碼
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026國(guó)考·省考課程試聽報(bào)名

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)