在網站建設中,通過setcookie()函數創建Cookie。使用setcookie()函數的前提是客戶瀏覽器支持Cookie,如果客戶禁用Cookie,setcookie()將返回false。語法格式如下:
setcookie(name,value,expire,path,domain,secure)
setcookie()函數向客戶端發送一個HTTPcookie。如果成功,則該函數返回true,否則返回false。setcookie()函數的參數說明如表所示。
【示例1】如何設置并發送cookie。<?php$value = "my cookie value";//發送一個簡單的 cookiesetcookie("TestCookie",$value);?>
注意:在發送cookie時,cookie的值會自動進行URL編碼。接收時會進行URL解碼。如果不需要這樣,可以使用setraw-cookie()函數進行代替。
【示例2】設置一個24小時有效期的cookie。
<?php$value = "my cookie value";//發送一個24小時過期的cookiesetcookie("TestCookie",$value, time()+3600*24);?>
如果要把cookie保存為瀏覽器進程,即瀏覽器關閉后就失效。那么可以直接把expiretime設為0。如:
<?php$value = "my cookie value";//發送一個關閉瀏覽器即失效的cookiesetcookie("TestCookie",$value, 0);?>
參數path表示Web服務器上的目錄,默認為被調用頁面所在目錄,這里還有一點要說明的,如果網站有幾個不同的目錄,如一個購物目錄、一個論壇目錄等,那么如果只用不帶路徑的Cookie的話,在一個目錄下的頁面里設置的Cookie在另一個目錄的頁面里是看不到的,也就是說,Cookie是面向路徑的。實際上,即使沒有指定路徑,Web服務器會自動傳遞當前的路徑給瀏覽器的,指定路徑會強制服務器使用設置的路徑。解決這個問題的辦法是在調用setcookie()函數時加上路徑和域名,域名的格式可以是
,也可以是“.ph-puser.com”。參數domain可以使用的域名,默認為被調用頁面的域名。這個域名必須包含兩個“.”,所以如果指定頂級域名,則必須使用“.mydomain.com”。設定域名后,必須采用該域名訪問網站cookie才有效。如果使用多個域名訪問該頁,那么這個地方可以為空或者訪問這個cookie的域名都是一個域下面的。
參數secure如果設為“1”,表示cookie只能被用戶的瀏覽器認為是安全的服務器所記住。
注意:value、path、domain 3個參數可以用空字符串""代換,表示沒有設置。expire和secure兩個參數是數值型的,可以用0表示。expire參數是一個標準的UNIX時間標記,可以用time()或mktime()函數取得,以秒為單位。secure參數表示這個Cookie是否通過加密的HTTPS協議在網絡上傳輸。httponly參數如果設為1,則表示cookie只能被HTTP協議所使用,任何腳本語言都不能獲取PHP所創建的cookie,這就有效削弱了來自XSS的攻擊。當前設置的Cookie不是立即生效的,而是要等到下一個頁面或刷新后才能看到。這是由于在設置的這個頁面里Cookie由服務器傳遞給客戶瀏覽器,在下一個頁面或刷新后瀏覽器才能把Cookie從客戶的機器里取出傳回服務器的原因。
當前文章標題:創建Cookie
當前URL:http://www.258852.net/news/wzzz/3278.html
上一篇:認識Cookie