您好,登錄后才能下訂單哦!
本文將為大家詳細介紹“php header()設置cookie的方法”,內容步驟清晰詳細,細節處理妥當,而小編每天都會更新不同的知識點,希望這篇“php header()設置cookie的方法”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內容如下,一起去收獲新知識吧。
php是一個嵌套的縮寫名稱,指的是英文超級文本預處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。
在php中,header()函數用于向客戶端發送原始的HTTP報頭,可以通過“header("Set-Cookie:xxxxxxxxxxxxxxxx",false);”的形式來設置cookie。
header() 函數向客戶端發送原始的 HTTP 報頭。
header輸出cookie
set cookie函數,如果想要生效,也是通過header設置瀏覽器端進而生效的。所以通過header輸出也是可行的。那么關于寫出幾條等價的header操作,大家對比學習一下:
header("Set-Cookie:cookie_name1_cp=" . urlencode("瀏覽器關閉失效")); setcookie("cookie_name1", "瀏覽器關閉失效");
更多編程相關知識,請訪問:編程視頻!!
說明:
我們知道,php的setcookie和header都可以設置cookie。但是使用header的時候,還有個注意事項:那就是header和setcookie之間的先后順序,甚至header和header之間的先后順序。
header("Set-Cookie:")會清除掉:本語句調用之前的,所有的header("Set-Cookie:")和setcookie(setrawcookie)的效果。見下面的例子,設置了四個cookie。但是實際上只有一個生效。因為另外三個被最后一個給沖掉了。
header("Set-Cookie:cookie_name1_cp=" . urlencode("瀏覽器關閉失效")); setcookie("cookie_name1", "瀏覽器關閉失效"); setcookie("cookie_name3", "設置有效域名/https/httponly", time() + 3600*24, "/", $_SERVER['SERVER_NAME'], isset($_SERVER["HTTPS"]),true); header("Set-Cookie:cookie_name3_cp=" . urlencode("設置有效域名/https/httponly") . "; expires=" . gmstrftime("%a, %d-%b-%Y %H:%M:%S GMT", time() + 3600*24) . "; Max-Age=3600; path=/; domain= ".$_SERVER['SERVER_NAME']."; httponly");
解決方法:
為header增加第二個參數,false。就是說:
header("Set-Cookie:xxxxxxxxxxxxxxxx",false);
例如:
header("Set-Cookie:cookie_name3_cp=" . urlencode("設置有效域名/https/httponly") . "; expires=" . gmstrftime("%a, %d-%b-%Y %H:%M:%S GMT", time() + 3600*24) . "; Max-Age=3600; path=/; domain= ".$_SERVER['SERVER_NAME']."; httponly;"); header("Set-Cookie:cookie_name3_cp2=" . urlencode("設置有效域名/https/httponly") . "; expires=" . gmstrftime("%a, %d-%b-%Y %H:%M:%S GMT", time() + 3600*24) . "; Max-Age=3600; path=/; domain= ".$_SERVER['SERVER_NAME']."; httponly;",FALSE);
這樣的話,使用了false參數的header就不會沖突掉原有的了。具體可以參見header的php函數說明:
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
我們的false,設置的就是參數$replace,就是不替換已有同類型header的意思。注意是“同類型”。
如果你能讀到這里,小編希望你對“php header()設置cookie的方法”這一關鍵問題有了從實踐層面最深刻的體會,具體使用情況還需要大家自己動手實踐使用過才能領會,如果想閱讀更多相關內容的文章,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。