校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PHP的cookie與session原理及用法詳解

PHP的cookie與session原理及用法詳解

熱門標簽:聊城電話外呼系統公司 辦理重慶400電話 AI電話機器人OEM貼牌 智能電話機器人好公司門薩維 銅川電話機器人價格 青白江地圖標注 江蘇電商外呼系統運營商 德陽中江如何申請400開頭電話 沛縣400電話辦理

本文實例講述了PHP的cookie與session原理及用法。分享給大家供大家參考,具體如下:

產生背景

HTTP協議是無狀態的協議。一旦數據交換完畢,客戶端與服務器端的連接就會關閉,再次交換數據需要建立新的連接。這就意味著服務器無法從連接上跟蹤會話。于是需要引入一種機制,COOKIE于是就順應而生。

Session是另一種記錄客戶狀態的機制,不同的是Cookie保存在客戶端瀏覽器中,而Session保存在服務器上。客戶端瀏覽器訪問服務器的時候,服務器把客戶端信息以某種形式記錄在服務器上。這就是Session。

理解例子

以前大學的時候,經常去大卡司去喝奶茶,每喝一杯,都可以得到一個印花(第一次喝的時候他會給你個積分卡片),集齊6個印花之后,就可以免費獲得一杯奶茶。這樣子,印花的信息是保存在客戶的積分卡上,你如果不懷好意的話,就自己搞幾個神似的印花去騙奶茶喝吧。哈哈,這樣子是不是更符合在客戶端端(cookie)保持狀態。而拿銀行卡去銀行取錢,我們的卡只需要保存一個卡號,更多的信息是保存在服務器中(session),這樣也比較符合服務器端保持狀態。

具體來說cookie機制采用的是在客戶端保持狀態的方案,而session機制采用的是在服務器端保持狀態的方案。同時我們也看到,由于采用服務器端保持狀態的方案在客戶端也需要保存一個標識,所以session機制可能需要借助于cookie機制來達到保存標識的目的,

簡述cookie

PHP工作原理:PHP通過setcookie函數進行Cookie的設置,任何從瀏覽器發回的Cookie,PHP都會自動的將他存儲在$_COOKIE的全局變量之中,因此我們可以通過$_COOKIE['key']的形式來讀取某個Cookie值。

用途:PHP中的Cookie具有非常廣泛的使用,經常用來存儲用戶的登錄信息,購物車等,且在使用會話 Session時通常使用Cookie來存儲會話id來識別用戶,Cookie具備有效期,當有效期結束之后,Cookie會自動的從客戶端刪除。同時為 了進行安全控制,Cookie還可以設置域跟路徑。

函數Cookie

PHP設置Cookie最常用的方法就是使用setcookie函數,setcookie具有7個可選參數,我們常用到的為前5個:

  • name( Cookie名)可以通過$_COOKIE['name'] 進行訪問
  • value(Cookie的值)
  • expire(過期時間)Unix時間戳格式,默認為0,表示瀏覽器關閉即失效
  • path(有效路徑)如果路徑設置為'/',則整個網站都有效
  • domain(有效域)默認整個域名都有效,如果設置了'www.imooc.com',則只在www子域中有效
$value = 'test';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); //有效期一小時
setcookie("TestCookie", $value, time()+3600, "/path/", "imooc.com"); //設置路徑與域

PHP中還有一個設置Cookie的函數setrawcookie,setrawcookie跟setcookie基本一樣,唯一的不同就是value值不會自動的進行urlencode,因此在需要的時候要手動的進行urlencode。

setrawcookie('cookie_name', rawurlencode($value), time()+606024*365);

因為Cookie是通過HTTP標頭進行設置的,所以也可以直接使用header方法進行設置。

header("Set-Cookie:cookie_name=value");

刪除cookie

PHP設置Cookie最常用的方法就是使用setcookie函數,setcookie具有7個可選參數,我們常用到的為前5個:

  • name( Cookie名)可以通過$_COOKIE['name'] 進行訪問
  • value(Cookie的值)
  • expire(過期時間)Unix時間戳格式,默認為0,表示瀏覽器關閉即失效
  • path(有效路徑)如果路徑設置為'/',則整個網站都有效
  • domain(有效域)默認整個域名都有效,如果設置了'www.imooc.com',則只在www子域中有效
$value = 'test';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); //有效期一小時
setcookie("TestCookie", $value, time()+3600, "/path/", "imooc.com"); //設置路徑與域

PHP中還有一個設置Cookie的函數setrawcookie,setrawcookie跟setcookie基本一樣,唯一的不同就是value值不會自動的進行urlencode,因此在需要的時候要手動的進行urlencode。

setrawcookie('cookie_name', rawurlencode($value), time()+606024*365);

因為Cookie是通過HTTP標頭進行設置的,所以也可以直接使用header方法進行設置。

header("Set-Cookie:cookie_name=value");

簡述session

在PHP中使用session非常簡單,先執行session_start方法開啟session,然后通過全局變量$_SESSION進行session的讀寫。

session_start();
$_SESSION['test'] = time();
var_dump($_SESSION);

刪除session

在PHP中使用session非常簡單,先執行session_start方法開啟session,然后通過全局變量$_SESSION進行session的讀寫。

session_start();
$_SESSION['test'] = time();
var_dump($_SESSION);

session會自動的對要設置的值進行encode與decode,因此session可以支持任意數據類型,包括數據與對象等。

session_start();
$_SESSION['ary'] = array('name' => 'jobs');
$_SESSION['obj'] = new stdClass();
var_dump($_SESSION);

默認情況下,session是以文件形式存儲在服務器上的,因此當一個頁面開啟了session之后,會獨占這個session文件,這樣會導致當前用戶的其他并發訪問無法執行而等待。可以采用緩存或者數據庫的形式存儲來解決這個問題,這個我們會在一些高級的課程中講到。

session存儲用戶信息

session可以用來存儲多種類型的數據,因此具有很多的用途,常用來存儲用戶的登錄信息,購物車數據,或者一些臨時使用的暫存數據等。
用戶在登錄成功以后,通常可以將用戶的信息存儲在session中,一般的會單獨的將一些重要的字段單獨存儲,然后所有的用戶信息獨立存儲。

$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['userinfo'] = $userinfo;

一般來說,登錄信息既可以存儲在sessioin中,也可以存儲在cookie中,他們之間的差別在于session可以方便的存取多種數據類型, 而cookie只支持字符串類型,同時對于一些安全性比較高的數據,cookie需要進行格式化與加密存儲,而session存儲在服務端則安全性較高。

?php
session_start();//假設用戶登錄成功獲得了以下用戶數據
$userinfo = array(
  'uid' => 10000,
  'name' => 'spark',
  'email' => 'spark@imooc.com',
  'sex' => 'man',
  'age' => '18');
header("content-type:text/html; charset=utf-8");
/* 將用戶信息保存到session中 */
$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['name'] = $userinfo['name'];
$_SESSION['userinfo'] = $userinfo;
//* 將用戶數據保存到cookie中的一個簡單方法 */
$secureKey = 'imooc'; //加密密鑰
$str = serialize($userinfo); //將用戶信息序列化//用戶信息加密前
$str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB));//用戶信息加密后//將加密后的用戶數據存儲到cookie中
setcookie('userinfo', $str);
//當需要使用時進行解密
$str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB);
$uinfo = unserialize($str);
echo "解密后的用戶信息:br>";
print_r($uinfo);

異同

1.cookie將數據存儲在客戶端,建立起用戶與服務器之間的聯系,session是將用戶的會話數據存儲在服務端
2.cookie相對不是太安全,容易被盜用導致cookie欺騙
3.單個cookie的值最大只能存儲4k  session沒有大小限制
4.每次請求都要進行網絡傳輸,占用帶寬
5.通過一個session_id進行用戶識別,PHP默認情況下session id是通過cookie來保存的,因此從某種程度上來說,seesion依賴于cookie。但這不是絕對的,session id也可以通過參數來實現,只要能將session id傳遞到服務端進行識別的機制都可以使用session。

jQuery Cookie 插件

引入

script src="https://cdn.staticfile.org/jquery/3.4.0/jquery.min.js">/script> 
script src="https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js">/script>

設置刪除

$.cookie('name', 'value', { expires: 7, path: '/' });
$.removeCookie('name'); // => true

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP中cookie用法總結》、《php緩存技術總結》、《PHP數組(Array)操作技巧大全》、《PHP網絡編程技巧總結》及《php字符串(string)用法總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP實現cookie跨域session共享的方法分析
  • PHP+Apache實現二級域名之間共享cookie的方法
  • PHP cookie,session的使用與用戶自動登錄功能實現方法分析
  • PHP CURL中傳遞cookie的方法步驟
  • php更新cookie內容的詳細方法

標簽:濟寧 迪慶 南寧 三亞 烏魯木齊 山南 赤峰 鷹潭

巨人網絡通訊聲明:本文標題《PHP的cookie與session原理及用法詳解》,本文關鍵詞  PHP,的,cookie,與,session,原理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP的cookie與session原理及用法詳解》相關的同類信息!
  • 本頁收集關于PHP的cookie與session原理及用法詳解的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲影院理伦片| 91美女福利视频| 丁香六月久久综合狠狠色| 成人高清伦理免费影院在线观看| 国产东北露脸精品视频| 99久久免费视频.com| 欧美日韩精品专区| 精品国产91洋老外米糕| 国产精品久久777777| 午夜精品久久久久久久蜜桃app| 看电影不卡的网站| 99视频有精品| 日韩三级伦理片妻子的秘密按摩| 国产色产综合色产在线视频| 亚洲蜜桃精久久久久久久| 久久精品国产亚洲5555| 色中色一区二区| 国产日韩成人精品| 日韩高清在线一区| 欧洲激情一区二区| 亚洲国产高清aⅴ视频| 日韩av中文在线观看| 91九色02白丝porn| 2欧美一区二区三区在线观看视频| 日韩美女视频一区二区| 免费观看在线色综合| 欧美午夜精品一区| 中文字幕在线一区| 国产精品一区在线观看你懂的| 欧美男女性生活在线直播观看| 亚洲欧美偷拍另类a∨色屁股| 国产在线麻豆精品观看| 欧美一级淫片007| 亚洲主播在线播放| 欧美在线免费观看亚洲| 国产精品视频你懂的| 欧美aⅴ一区二区三区视频| 91在线国产福利| 国产日本欧美一区二区| 男女激情视频一区| gogogo免费视频观看亚洲一| 久久久五月婷婷| 久久99精品久久久| 91精品国产一区二区三区| 一区二区欧美视频| 99久久99久久综合| 亚洲欧美一区二区在线观看| 国产精品夜夜嗨| 久久久99久久| 国产精品一区一区| 日韩一区二区三免费高清| 亚洲大片精品永久免费| 欧美手机在线视频| 亚洲最新在线观看| 欧美日韩国产经典色站一区二区三区| 亚洲精品日日夜夜| 欧美性xxxxx极品少妇| 天堂av在线一区| 日韩欧美www| 国产黑丝在线一区二区三区| 26uuu欧美| 成人av网站在线| 亚洲第一成人在线| 日韩欧美黄色影院| 国产成人综合网| 亚洲欧美激情插| 欧美人妖巨大在线| 国内成人免费视频| 国产精品久久久久久久浪潮网站 | 国产视频一区二区三区在线观看| 国产99精品国产| 亚洲国产一区二区视频| 日韩美女在线视频| 成人免费av在线| 亚洲国产精品t66y| 精品污污网站免费看| 免费成人深夜小野草| 国产精品欧美一区二区三区| 欧美视频在线观看一区二区| 韩国精品免费视频| 亚洲蜜臀av乱码久久精品| 日韩欧美在线不卡| 91久久精品网| 国产精品一区二区男女羞羞无遮挡| 一区二区三区在线观看欧美| 久久夜色精品一区| 欧美中文字幕一区二区三区亚洲| 国产中文一区二区三区| 亚洲在线成人精品| 欧美激情在线一区二区| 欧美高清www午色夜在线视频| 成人av在线资源网站| 九九视频精品免费| 久久精品亚洲精品国产欧美kt∨| 欧美四级电影网| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 日韩高清电影一区| 亚洲一区二区三区中文字幕在线| 国产精品久久久久久久久久免费看| 六月丁香婷婷色狠狠久久| 日韩制服丝袜av| 中文字幕免费观看一区| 一本久久综合亚洲鲁鲁五月天 | 1000部国产精品成人观看| 国产亚洲精品aa午夜观看| 欧美大胆一级视频| 日韩精品一区二区三区视频播放 | 日本中文一区二区三区| 亚洲午夜免费电影| 亚洲成人av免费| 免费成人结看片| 图片区小说区区亚洲影院| 日本sm残虐另类| 看片网站欧美日韩| 国产成人午夜精品影院观看视频 | 欧美日本乱大交xxxxx| 91精品国产一区二区三区香蕉 | 亚洲一区二区三区四区不卡| 亚洲综合免费观看高清完整版| 亚洲国产精品影院| 免费一级欧美片在线观看| 国产乱人伦偷精品视频免下载| 国产成人综合在线播放| 色综合天天视频在线观看| 5858s免费视频成人| 日韩欧美一区二区视频| 久久蜜桃香蕉精品一区二区三区| 国产精品久久综合| 视频在线观看国产精品| 国产中文字幕精品| 欧美午夜精品久久久久久孕妇| 欧美日本一区二区三区| 欧美韩国日本综合| 亚洲人成伊人成综合网小说| 日韩影视精彩在线| 91一区二区在线观看| 精品国产伦一区二区三区观看方式| 久久久久久**毛片大全| 亚洲成人免费观看| caoporm超碰国产精品| 日韩三级视频在线看| 亚洲黄色小视频| 国产成人h网站| 精品欧美一区二区久久| 亚洲一区二区三区中文字幕| 精品一区二区国语对白| 这里只有精品99re| 一区二区三区在线免费视频 | 亚洲一区二区美女| 91久久精品网| 香蕉成人伊视频在线观看| 宅男噜噜噜66一区二区66| 日本中文字幕一区二区有限公司| 91麻豆精品国产91久久久使用方法 | 久久久99久久| 91在线视频观看| 玉足女爽爽91| 欧美精品777| 精品在线观看免费| 国产精品久久看| 在线区一区二视频| 日本中文在线一区| 久久久影视传媒| 在线免费观看一区| 免费视频最近日韩| 国产欧美一区在线| 欧美日韩一级黄| 国产一区二区导航在线播放| 国产精品三级视频| 欧美性大战久久| 国产综合久久久久影院| 亚洲精品ww久久久久久p站| 日韩三级视频在线看| 91玉足脚交白嫩脚丫在线播放| 日本成人在线看| 亚洲精品国产无套在线观| 日韩女同互慰一区二区| 成人久久18免费网站麻豆| 亚洲aⅴ怡春院| 综合av第一页| 欧美电影免费观看完整版| 色婷婷综合久久久中文一区二区 | 国产精品色婷婷久久58| 91精品91久久久中77777| 精品影院一区二区久久久| 国产精品不卡在线| 久久亚洲捆绑美女| 3751色影院一区二区三区| 91一区在线观看| 成人免费av网站| 国产毛片精品国产一区二区三区| 日韩成人免费看| 午夜在线电影亚洲一区| 国产精品久久久久久久久免费相片 | 国产成人免费网站| 日本不卡的三区四区五区| 亚洲大片一区二区三区| 一区二区三区在线影院| 亚洲四区在线观看| 中文字幕一区二区三区四区不卡|