這篇文章帶給大家的內容是關於cookie和session的詳細介紹(圖文),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
cookie技術
cookie是瀏覽器端的技術,可以在瀏覽器上保存資料的技術! cookie就是指的是瀏覽器上儲存的資料!
PHP支援cookie技術! php可以向瀏覽器發出指令,從而將資料保存到瀏覽器上!
瀏覽器負責保存數據,而php負責控制瀏覽器保存那些數據! (php在是使用瀏覽器上cookie技術)
保存在瀏覽器上的cookie數據,可以在瀏覽器每次向伺服器請求時,都可以攜帶該數據,向伺服器發出請求,此時伺服器上的腳本就可以獲得該數據!
基本上使用
設定cookie 變量,增,改,刪除
利用內部函數 setcookie 完成
#形式:setcookie(名字,值)
取得cookie 變量,讀取
使用預先定義數組變數:$_COOKIE
#該變數內保存所有從瀏覽器請求時所攜帶的cookie資料!
每個元素就是一個cookie變數資料!下標是名字,值,就是值!
基本原理
利用firebug的網路標籤:
設定時,做了什麼?
在回應時,伺服器發送了一條指令,在瀏覽器上增加一個cookie變數!
瀏覽器接到該指令後,在瀏覽器上增加了一個cookie資料!
取得時,做了什麼?
瀏覽器會將目前網站的所有的cookie在請求時都攜帶到伺服器上!
php會自動取得到瀏覽器攜帶的cookie,形成$_COOKIE數組,使用者腳本使用!
進階使用
1.cookie資料只能是字串資料!
2.setcookie函數,可以完成增,修改,刪除!
不存在,則增加,存在則修改!
刪除,可以採用將值,置空的形式!
3.cookie變數的失效期
#cookie資料存在有效期的概念:
默認,臨時cookie。會儲存到瀏覽器關閉!
同時,支持,增加setcookie的第三個參數,來修改cookie變數的有效期限。有效期限的表示方式,是時間戳,表示到哪個時間點,失效!
php可以透過 time()函數,得到目前的時間戳,time()增加增量的形式延長cookie時間!
此時,伺服器會向瀏覽器發出以下指令:
網路上表示時間,都是用格林威治平時!沒有時區概念的那個時間! GMT
瀏覽器知道cookie變數的有效期限!
常用的動作:
##1 .cookie存在有效路徑的概念#
cookie變數是只在目前目錄,及其後代目錄才會生效!
test/下設定, test/sub/下可以存取
#反過來:
# #
那是由於該cookie:
可以更改cookie資料的有效路徑:
透過setcookie的第四個參數做修改:
/ 表示網站根目錄有效!整站有效!
5,cookie子網域的概念
cookie是嚴格區分網域的。
支援在子網域之間是可以共享的:
利用第五個參數設定
#有效期,有效路徑,有效子域名!
6,$_COOKIE是捕獲不了目前腳本所設定的cookie變數的!
$_COOKIE是,瀏覽器請求時所攜帶的所有cookie!
目前設定的下次使用請求才好用!
session技術,會話技術場景:
cookie的問題
由於是資料本身是在瀏覽器端:
資料的安全性問題!
資料總是要在請求時攜帶!
怎麼解決,注意保持在瀏覽器的多次請求間共享資料!
將資料放在伺服器端,同時是資料區分瀏覽器,在瀏覽器的多次請求間共用資料!
在伺服器上,為來訪的每台瀏覽器增加一個資料空間,然後為這些資料空間分配不同唯一的識別碼!為每個瀏覽器分配一個唯一的標識,該標誌應該伺服器端資料庫空間的標識應該一一對應
要求,瀏覽器每次請求時攜帶標識,此時伺服器可以獲得標識,利用標識確定資料空間,但卻請求的所有的資料處理,都在目前的確定的空間內完成!
將伺服器指派給瀏覽器的唯一識別存在瀏覽器的cookie內,可以保證瀏覽器每次來時都會攜帶!
伺服器為每一個新瀏覽器存取(沒有確定標識的瀏覽器),確定標識,並在伺服器上產生一個唯一的資料空間!
基本上使用
直接操作$_SESSION數組,就可以完成session資料的存,取!
每個session數據,就對應$_SESSION內的一個元素!對元素操作,就是對session資料做操作!
但是,session技術,包含生產session標識,開啟session資料空間,為瀏覽器分配session標識等等,都需要PHP的session機制支援!
因此,需要先開啟session的支持,才能操作$_SESSION變量,從而去操作session資料!
開啟:session_start();
#操作:##$_SESSION;先開啟後操作:
#更新與刪除:
基本原理
瀏覽器端cookie中儲存的sessionID:
目前瀏覽器第一次對伺服器發出請求時,伺服器無法確定瀏覽器的識別
會重新產生一個唯一標識,以cookie的形式儲存到瀏覽器端!
其中預設的cookie變數名稱為:PHPSESSID。
伺服器的端的是session資料空間
預設情況下,php,會將保存session資料的空間,產生一個檔案來完成!透過文件的名稱來區分屬於哪個ID的!
預設的被保存在伺服器作業系統的暫存目錄內:
#大概的流程:
##測試:
使用session來完成登陸識別驗證:
以上是cookie和session的詳細介紹(圖文)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增強codemodocultion,可驗證性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

選擇DependencyInjection(DI)用於大型應用,ServiceLocator適合小型項目或原型。 1)DI通過構造函數注入依賴,提高代碼的測試性和模塊化。 2)ServiceLocator通過中心註冊獲取服務,方便但可能導致代碼耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)啟用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替換loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化進行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

tomakephpapplicationsfaster,關注台詞:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,關注台詞:1)啟用opcodeCachingwithapCutoredUcescriptexecutiontime.2)實現databasequerycachingingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandreduceconnection.4 limitesclection.4.4

依赖注入(DI)通过显式传递依赖关系,显著提升了PHP代码的可测试性。1)DI解耦类与具体实现,使测试和维护更灵活。2)三种类型中,构造函数注入明确表达依赖,保持状态一致。3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

WebStorm Mac版
好用的JavaScript開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

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