php會話技術主要包含哪些
本文主要講解php回話機制cookie和session。
cookie簡介
Cookie是儲存在客戶端瀏覽器中的數據,我們透過Cookie來追蹤與儲存使用者資料。一般情況下,Cookie會透過HTTP headers從服務端返回客戶端。多數web程式都支援Cookie的操作,因為Cookie是存在於HTTP的標頭之中,所以必須在其他資訊輸出先前進行設置,類似於header函數的使用限制。
PHP透過setcookie函數進行Cookie的設置,任何從瀏覽器發回的Cookie,PHP都會自動的將他儲存在$_COOKIE的全域變數之中,因此我們可以透過$_COOKIE['key' ]的形式來讀取某個Cookie值。
PHP中的Cookie具有非常廣泛的使用,經常用來儲存用戶的登入訊息,購物車等,且在使用會話Session時通常使用Cookie來儲存會話id來識別用戶,Cookie具備有效期,當有效期結束之後,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"); //设置路径与域
setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365);
header("Set-Cookie:cookie_name=value");
cookie的刪除與過期時間
透過前面的章節,我們了解了設定cookie的函數,但是我們卻發現php中沒有刪除Cookie的函數,在PHP中刪除cookie也是採用setcookie函數來實作。setcookie('test', '', time()-1);
header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s \G\M\T', time()-1));
session與cookie的異同
cookie將資料儲存在客戶端,建立起用戶與伺服器之間的聯繫,通常可以解決很多問題,但是cookie仍然具有一些限制:cookie相對不是太安全,容易被盜用導致cookie欺騙單一cookie的值最大隻能儲存4k每次請求都要進行網絡傳輸,佔用頻寬session是將使用者的會話資料儲存在服務端,沒有大小限制,透過一個session_id進行使用者識別,PHP預設情況下session id是透過cookie來保存的,因此從某種程度上來說,seesion依賴cookie。但這不是絕對的,session id也可以透過參數來實現,只要能將session id傳遞到服務端進行辨識的機制都可以使用session。使用session
在PHP中使用session非常簡單,先執行session_start方法開啟session,然後透過全域變數$_SESSION進行session的讀寫。session_start(); $_SESSION['test'] = time(); var_dump($_SESSION);
session_start(); $_SESSION['ary'] = array('name' => 'jobs'); $_SESSION['obj'] = new stdClass(); var_dump($_SESSION);
刪除與銷毀session
刪除某個session值可以使用PHP的unset函數,刪除後就會從全域變數$_SESSION中移除,無法存取。session_start(); $_SESSION['name'] = 'jobs'; unset($_SESSION['name']); echo $_SESSION['name']; //提示name不存在
session_start(); $_SESSION['name'] = 'jobs'; $_SESSION['time'] = time(); session_destroy();
值得注意的是,session_destroy并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销毁$_SESSION,可以使用unset函数。
session_start(); $_SESSION['name'] = 'jobs'; $_SESSION['time'] = time(); unset($_SESSION); session_destroy(); var_dump($_SESSION); //此时已为空
如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。
使用session来存储用户的登录信息
session可以用来存储多种类型的数据,因此具有很多的用途,常用来存储用户的登录信息,购物车数据,或者一些临时使用的暂存数据等。
用户在登录成功以后,通常可以将用户的信息存储在session中,一般的会单独的将一些重要的字段单独存储,然后所有的用户信息独立存储。
$_SESSION['uid'] = $userinfo['uid']; $_SESSION['userinfo'] = $userinfo;
一般来说,登录信息既可以存储在sessioin中,也可以存储在cookie中,他们之间的差别在于session可以方便的存取多种数据类型,而cookie只支持字符串类型,同时对于一些安全性比较高的数据,cookie需要进行格式化与加密存储,而session存储在服务端则安全性较高。
以上是php會話技術主要包含哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Cookie通常儲存在瀏覽器的Cookie資料夾中的,瀏覽器中的Cookie檔案通常以二進位或SQLite格式存儲,如果直接開啟Cookie文件,可能會看到一些亂碼或無法讀取的內容,因此最好使用瀏覽器提供的Cookie管理介面來檢視和管理Cookie。

電腦上的Cookie儲存在瀏覽器的特定位置,具體位置取決於使用的瀏覽器和作業系統:1、Google Chrome, 儲存在C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default \Cookies中等等。

session失效通常是由於 session 的生存時間過期或伺服器關閉導致的。其解決方法:1、延長session的生存時間;2、使用持久化儲存;3、使用cookie;4、非同步更新session;5、使用會話管理中介軟體。

PHPSession跨域問題的解決方法在前後端分離的開發中,跨域請求已成為常態。在處理跨域問題時,我們通常會涉及session的使用和管理。然而,由於瀏覽器的同源策略限制,跨域情況下預設無法共享session。為了解決這個問題,我們需要採用一些技巧和方法來實現session的跨域共享。一、使用cookie跨域共享session最常

手機上的Cookie儲存在行動裝置的瀏覽器應用程式中:1、在iOS裝置上,Cookie儲存在Safari瀏覽器的Settings -> Safari -> Advanced -> Website Data中;2、在Android裝置上,Cookie儲存在Chrome瀏覽器的Settings -> Site settings -> Cookies中等等。

Cookie運作方式涉及到伺服器發送Cookie、瀏覽器儲存Cookie以及瀏覽器對Cookie的處理和儲存。詳細介紹:1、伺服器發送Cookie,伺服器會傳送一個包含Cookie的HTTP回應標頭給瀏覽器。這個Cookie包含了一些訊息,例如使用者的身份認證、偏好設定或購物車內容等,瀏覽器接收到這個Cookie後,會將它儲存在使用者的電腦上;2、瀏覽器儲存Cookie等等。

隨著網路的普及,我們使用瀏覽器進行上網已經成為一種生活方式。在日常使用瀏覽器過程中,我們常會遇到需要輸入帳號密碼的情況,如網購、社交、郵件等。這些資訊需要瀏覽器記錄下來,以便下次造訪時不需要再次輸入,這時候Cookie就派上了用場。什麼是Cookie? Cookie是指由伺服器端發送到使用者瀏覽器上並儲存在本地的一種小型資料文件,它包含了一些網站的使用者行為

JavaScriptCookie使用JavaScriptcookie是記住和追蹤偏好、購買、佣金和其他資訊的最有效方法。更好的訪客體驗或網站統計所需的資訊。 PHPCookieCookie是儲存在客戶端電腦上的文字檔案並保留它們用於追蹤目的。 PHP透明地支援HTTPcookie。 JavaScriptcookie如何運作?您的伺服器將一些資料傳送到訪客的瀏覽器cookie的形式。瀏覽器可以接受cookie。如果存在,它將作為純文字記錄儲存在訪客的硬碟上。現在,當訪客到達網站上的另一個頁面時
