phpsetcookie路徑,php中setcookie參數

本文目錄一覽:

php setcookie(name, value, expires, path, domain,

setcookie() 定義一個和其餘的 HTTP 標頭一起發送的 cookie 和其它標頭一樣 cookie 必須在腳本的任何其它輸出之前發送(這是協議限制) 這 需要將本函數的調用放到任何輸出之前 包括 和 head 標籤以及任何空格 如果在調用 setcookie() 之前有任何輸出 本函數將失敗並返回 FALSE 如果 setcookie() 函數成功運行 將返回 TRUE 這並不說明用戶是否接受了 cookie 函數定義 bool setcookie ( string name [ string value [ int expire [ string path [ string domain [ bool secure]]]]] ) setcookie() 參數詳解

參數  說明 舉例 name cookie的名字 使用 $_COOKIE[ cookiename ] 調用名為 cookiename 的 cookie value cookie的值 存放在客戶端 不要存放敏感數據 假定 name 是 cookiename 可以通過 $_COOKIE[ cookiename ] 取得其值 expire

Cookie 過期的時間 這是個 Unix 時間戳 即從 Unix 紀元開始的秒數

換而言之 通常用 time() 函數再加上秒數來設定 cookie 的失效期

或者用 mktime() 來實現

time()+ * * * 將設定 cookie 天后失效

如果未設定 cookie 將會在會話結束後(一般是瀏覽器關閉)失效

path Cookie 在伺服器端的有效路徑

如果該參數設為 / 的話 cookie 就在整個 domain 內有效

如果設為 /foo/ cookie 就只在 domain 下的 /foo/ 目錄及其子目錄內有效 例如 /foo/bar/

默認值為設定 cookie 的當前目錄

domain 該 cookie 有效的域名

要使 cookie 能在如 example 域名下的所有子域都有效的話 該參數應該設為 example

雖然 並不必須的 但加上它會兼容更多的瀏覽器

如果該參數設為 example 的話 就只在 子域內有效

細節見Cookie 規範中的 tail matching

secure

指明 cookie 是否僅通過安全的 HTTPS 連接傳送

當設成 TRUE 時 cookie 僅在安全的連接中被設置 默認值為 FALSE

例子 setcookie() 發送例子

複製代碼 代碼如下: $value = something from somewhere ; setcookie(“TestCookie” $value); setcookie(“TestCookie” $value time()+ ); /* expire in hour */ setcookie(“TestCookie” $value time()+ “/~ra *** us/” ” utoronto ca” );

注意 cookie 中值的部分在發送的時候會被自動用 urlencode 編碼並在接收到的時候被自動解碼並把值賦給與自己同名的 cookie 變數 如果不想這樣並且在使用 PHP 的話 可以用 setrawcookie() 來代替 下面這個簡單的例子可以得到剛才所設定的 cookie 的值

複製代碼 代碼如下: ?php // 輸出單獨的 cookie echo $_COOKIE[“TestCookie”]; echo $HTTP_COOKIE_VARS[“TestCookie”]; // 另一個調試的方法就是輸出所有的 cookie print_r($_COOKIE); ?

要刪除 cookie 需要確保它的失效期是在過去 才能觸發瀏覽器的刪除機制 下面的例子說明了如何刪除剛才設置的 cookie 例子 setcookie() 刪除例子

複製代碼 代碼如下: // 將過期時間設為一小時前 setcookie(“TestCookie” “” time() ); setcookie(“TestCookie” “” time() “/~ra *** us/” ” utoronto ca” );

也可以通過在 cookie 名稱中使用數組符號來設定數組 cookie 可以設定多個 cookie 作為數組單元 在腳本提取 cookie 時所有的值都放在一個數組種 例子 setcookie() 中使用數組的例子

複製代碼 代碼如下: ?php // 設定 cookie setcookie(“cookie[three]” “cookiethree”); setcookie(“cookie[o]” “cookieo”); setcookie(“cookie[one]” “cookieone”); // 刷新頁面後 顯示出來 if (isset($_COOKIE[ cookie ])) { foreach ($_COOKIE[ cookie ] as $name = $value) { echo “$name : $value br /n”; } } ? lishixinzhi/Article/program/PHP/201311/21055

如何設置cookie的伺服器路徑

Cookie的setPath()方法,指定的是可訪問該Cookie的目錄!默認只有同一個Web伺服器上同一個路徑下設置了該cookie的網頁讀取!如果你想讓這個cookie在多個頁面中共享,那麼需要使用Cookie的setPath()方法設置path

cookie.setPath(“/”),在Tomcat的webapps目錄下的所有目錄中共享這個cookie。

cookie.setPath(“/app1”),只能在app1應用下獲取這個cookie,就算這個cookie是app2產生的,app2也不能訪問它。

cookie.setPath(“/app1/action”),只能在app1/action目錄下獲取這個cookie。

我想你應該可以明白了,cookie的路徑指的是可以訪問該cookie的頂層目錄,該路徑的子路徑也可以訪問該cookie。

====

在中設置的cookie,但需要在zhidao.baidu.com下獲取,這樣就需要Cookie的setDomain()方法了。

cookie.setPath(“/”);

cookie.setDomain(“baidu.com”);//只給出域名的相同部分

response.add(cookie);

php使用setcookie設置的session在指定目錄有效

?php

session_set_cookie_params(0,’/path’);

session_start();

if ($_SESSION[‘name’] = “session”){

echo “設置成功”;

} else {

echo “設置失敗”;

}

?

?php

session_start();

var_dump($_SESSION);

?

PHP的cookie問題

發錯地方了!

PHP中使用cookie

1、設置Cookie

PHP用SetCookie函數來設置Cookie。必須注意的一點是:Cookie是HTTP協議頭的一部分,用於瀏覽器和伺服器之間傳遞信息,所以必須在任何屬於HTML文件本身的內容輸出之前調用Cookie函數。

SetCookie函數定義了一個Cookie,並且把它附加在HTTP頭的後面,SetCookie函數的原型如下:

int

SetCookie(string

name,

string

value,

int

expire,

string

path,

string

domain,

int

secure);

除了name之外所有的參數都是可選的。value,path,domain三個參數可以用空字元串代換,表示沒有設置;expire

secure兩個參數是數值型的,可以用0表示。expire參數是一個標準的Unix時間標記,可以用time()或mktime()函數取得,以秒為單位。secure參數表示這個Cookie是否通過加密的HTTPS協議在網路上傳輸。

當前設置的Cookie不是立即生效的,而是要等到下一個頁面時才能看到.這是由於在設置的這個頁面里Cookie由伺服器傳遞給客戶瀏覽器,在下一個頁面瀏覽器才能把Cookie從客戶的機器里取出傳回伺服器的原因。

在同一個頁面設置Cookie,實際是從後往前,所以如果要在插入一個新的Cookie之前刪掉一個,必須先寫插入的語句,再寫刪除的語句,否則可能會出現不希望的結果。

來看幾個例子:

簡單的:

SetCookie(“MyCookie”,

“Value

of

MyCookie”);

帶失效時間的:

SetCookie(“WithExpire”,

“Expire

in

1

hour”,

time()+3600);//3600秒=1小時

什麼都有的:

SetCookie(“FullCookie”,

“Full

cookie

value”,

time()+3600,

“/forum”,

“.phpuser.com”,

1);

這裡還有一點要說明的,比如站點有幾個不同的目錄,那麼如果只用不帶路徑的Cookie的話,在一個目錄下的頁面里設的Cookie在另一個目錄的頁面里是看不到的,也就是說,Cookie是面向路徑的。實際上,即使沒有指定路徑,WEB伺服器會自動傳遞當前的路徑給瀏覽器的,指定路徑會強制伺服器使用設置的路徑。解決這個問題的辦法是在調用SetCookie時加上路徑和域名,域名的格式可以是「」,也可是「.phpuser.com」。

SetCookie函數里表示value的部分,在傳遞時會自動被encode,也就是說,如果value的值是「test

value」在傳遞時就變成了「test%20value」,跟URL的方法一樣。當然,對於程序來說這是透明的,因為在PHP接收Cookie的值時會自動將其decode。

如果要設置同名的多個Cookie,要用數組,方法是:

SetCookie(“CookieArray[]”,

“Value

1″);

SetCookie(“CookieArray[]”,

“Value

2″);

SetCookie(“CookieArray[0]”,

“Value

1″);

SetCookie(“CookieArray[1]”,

“Value

2″);

2、接收和處理Cookie

PHP對Cookie的接收和處理的支持非常好,是完全自動的,跟FORM變數的原則一樣,特別簡單。

比如設置一個名為MyCookier的Cookie,PHP會自動從WEB伺服器接收的HTTP頭裡把它分析出來,並形成一個與普通變數一樣的變數,名為$myCookie,這個變數的值就是Cookie的值。數組同樣適用。另外一個辦法是引用PHP的全局變數$HTTP_COOKIE_VARS數組。

分別舉例如下:(假設這些都在以前的頁面里設置過了,並且仍然有效)

echo

$MyCookie;

echo

$CookieArray[0];

echo

count($CookieArray);

echo

$HTTP_COOKIE_VARS[“MyCookie”];

就這麼簡單。

3、刪除Cookie

要刪除一個已經存在的Cookie,有兩個辦法:

一是調用只帶有name參數的SetCookie,那麼名為這個name的Cookie將被從關係戶機上刪掉;另一個辦法是設置Cookie的失效時間為time()或time()-1,那麼這個Cookie在這個頁面的瀏覽完之後就被刪除了(其實是失效了)。

要注意的是,當一個Cookie被刪除時,它的值在當前頁在仍然有效的。

4、使用Cookie的限制

首先是必須在HTML文件的內容輸出之前設置;

其次不同的瀏覽器對Cookie的處理不一致辭,且有時會出現錯誤的結果。

第三個限制是在客戶端的。一個瀏覽器能創建的Cookie數量最多為30個,並且每個不能超過4KB,每個WEB站點能設置的Cookie總數不能超過20個。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/200057.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-05 14:03
下一篇 2024-12-05 14:03

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Spring Boot中發GET請求參數的處理

    本文將詳細介紹如何在Spring Boot中處理GET請求參數,並給出完整的代碼示例。 一、Spring Boot的GET請求參數基礎 在Spring Boot中,處理GET請求參…

    編程 2025-04-29
  • Python input參數變數用法介紹

    本文將從多個方面對Python input括弧里參數變數進行闡述與詳解,並提供相應的代碼示例。 一、基本介紹 Python input()函數用於獲取用戶輸入。當程序運行到inpu…

    編程 2025-04-29
  • Python Class括弧中的參數用法介紹

    本文將對Python中類的括弧中的參數進行詳細解析,以幫助初學者熟悉和掌握類的創建以及參數設置。 一、Class的基本定義 在Python中,通過使用關鍵字class來定義類。類包…

    編程 2025-04-29
  • Python函數名稱相同參數不同:多態

    Python是一門面向對象的編程語言,它強烈支持多態性 一、什麼是多態多態是面向對象三大特性中的一種,它指的是:相同的函數名稱可以有不同的實現方式。也就是說,不同的對象調用同名方法…

    編程 2025-04-29
  • Hibernate日誌列印sql參數

    本文將從多個方面介紹如何在Hibernate中列印SQL參數。Hibernate作為一種ORM框架,可以通過列印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • 全能編程開發工程師必知——DTD、XML、XSD以及DTD參數實體

    本文將從大體介紹DTD、XML以及XSD三大知識點,同時深入探究DTD參數實體的作用及實際應用場景。 一、DTD介紹 DTD是文檔類型定義(Document Type Defini…

    編程 2025-04-29
  • Python可變參數

    本文旨在對Python中可變參數進行詳細的探究和講解,包括可變參數的概念、實現方式、使用場景等多個方面,希望能夠對Python開發者有所幫助。 一、可變參數的概念 可變參數是指函數…

    編程 2025-04-29

發表回復

登錄後才能評論