php第一次無法獲取cookie問題處理

2021-07-15 07:26:54 字數 1335 閱讀 3240

首先編寫以下簡單的**:

複製**

**如下:

<?php

setcookie('a','value');

print $_cookie['a'];

第一次訪問時,報錯:

報錯的原因是$_cookie['a']的值不存在。第二次訪問:

問:為什麼第一次訪問的時候,會沒有cookie呢??我不是先設定,再獲取嗎??

答:使用firefox的firebug檢視」網路「:

客戶端:

可以看到,瀏覽器(客戶端)向伺服器發出一次請求,發出請求的時候,在請求頭資訊中帶上了各種引數,告訴伺服器,我要接收什麼樣的文字(accept)、什麼編碼格式(accept-encoding)、什麼語言(accept-language)等等,當然,還把cookie也傳到了伺服器(cookie)。

伺服器端:

第一步:setcookie('a','value')

因為cookie是設定在客戶端的,setcookie函式自己並不能設定cookie,它只能通過頭資訊的方式告訴瀏覽器說:兄弟,我要設定乙個cookie,鍵為a,值為value,你在你那裡幫我設定一下。你也可以理解為:」來,朕今天高興,賞你乙個小甜餅「。

第二步:$_cookie['a']$_cookie['a']

很簡單,執行的操作就是在瀏覽器帶過來的cookie字串中搜尋鍵為a的cookie,並返回它的值。

很明顯,這個」鍵為a「的cookie不可能找到,因為客戶端訪問伺服器的時候,這個cookie壓根就不存在,而前面第一步設定cookie的頭資訊,也還沒有返回給客戶端(php要從上到下把語句執行完才會返回給客戶端)

第三步:伺服器返回資訊

其中,返回的頭資訊中帶有」set-cookie a=value「,瀏覽器收到這個頭資訊,把cookie存放到電腦的某個檔案中,對於不同瀏覽器cookie的存放位置貌似不同,這個不在本文的範圍。

重新整理瀏覽器,再次訪問伺服器的時候,同樣,也會把很多頭資訊帶給伺服器,只不過這次帶過去的cookie中,就多了乙個a=value了。所心$_cookie['a']自然就能從cookie字串中找到這個鍵為a的cookie的值。

php 第一次課

1 基本語法 我們根據 1.3 節建立的示例來進一步講解 php 中的基本語法。1.變數 php 是弱型別語言,不要求使用變數之前宣告變數。在第一次給變數賦值時,該變數才被建立。賦值的同時指定了該變數的型別。php 基本資料型別包括 integer 整數,float double 浮點數 實數,st...

第一次php之旅

話說起來,我也是剛接觸php不久,剛開始是因為想自己做乙個從前端到後台完整的 所以去學後台技術,在各種語言的選擇中,由於php語言的簡單,易學,功能強大,開發速度快等原因,最終我選擇了php!一開始,選了本 php從入門到精通 開始看書,看了有乙個禮拜左右,基本語法和簡單使用已經ok了!但是,我不推...

第一次載入無法圓角問題

最近使用的時候發現乙個問題,roundedimageview與glide搭配使用的時候,第一次載入 記憶體中沒有 後無法圓角,後來嘗試各種改,最後想到了乙個辦法,就是讓glide載入的 時候讓圖不直接給控制項,讓控制項拿到bitmap後在操作roundedimageview img roundedi...