首頁 > 後端開發 > PHP問題 > php header()怎麼設定cookie

php header()怎麼設定cookie

青灯夜游
發布: 2023-03-08 09:56:01
原創
3721 人瀏覽過

在php中,header()函數用來傳送原始的HTTP標頭,可以透過「header("Set-Cookie:xxxxxxxxxxxxxxxx",false);」的形式來設定cookie。

php header()怎麼設定cookie

本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦

header() 函數傳送原始的HTTP 報頭。

header輸出cookie

set cookie函數,如果想要生效,也是透過header設定瀏覽器端進而生效的。所以透過header輸出也是可行的。那麼關於寫出幾個等價的header操作,大家比較學習一下:

header("Set-Cookie:cookie_name1_cp=" . urlencode("浏览器关闭失效"));
setcookie("cookie_name1", "浏览器关闭失效");
登入後複製

php header()怎麼設定cookie

#更多程式相關知識,請造訪:程式設計影片 ! !

說明:

我們知道,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");
登入後複製

php header()怎麼設定cookie

php header()怎麼設定cookie

解決方法:

為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的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板