Cookie的建立十分簡單,只要使用者的瀏覽器支援 Cookie 功能,就可以使用 PHP 內建的函數來建立一個新的Cookie。在PHP中透過 setcookie() 函數建立 Cookie。在建立 Cookie 之前必須了解的是, Cookie是 HTTP 頭標的組成部分,而頭標必須在頁面其他內容之前發送,因此它必須先輸出。所以即使是空格或是空白行,都不要在呼叫setcookie() 函數之前輸出。 若在 setcookie() 函數前面輸出一個 HTML標記、echo語句,甚至一個空白行都會導致程式出錯。
其語法為如下的格式:
setcookie(name,value,expire,path,domain,secure)
setcookie() 函數定義一個和其餘的HTTP 標頭一起傳送的Cookie,它的所有參數是對應HTTP 標頭Cookie 資料的屬性。雖然 setcookie() 函數的導入參數看起來不少,但除了參數name , 其他參數都是非必須的,而我們經常使用的只有 $name , $value和 $expire 這三個參數。
setcookie() 函數的參數說明如下:
1) name
Cookie 的變數名稱
可以透過$_COOKIE["cookiename"] 調用變數名為cookiename 的Cookie
2)value
Cookie 變數的值,該值保存在客戶端,不能用來保存敏感資料
可以透過$_COOKIE[ "values"] 取得名為values 的值
3) expire
Cookie 的失效時間,expire 是標準的UNIX 時間標記,可以用time()函數或mktime() 函數獲取,單位為秒
如果不設定Cookie 的失效時間,那麼Cookie 將永遠有效,除非手動將其刪除
4) path
Cookie 在服務端的有效路徑
如果該參數設定為“ / ”,則它在整個domain 內有效, 如果設定為“ /11 ”,它在 domain 下的/11目錄及子目錄內有效。預設是目前目錄
5) domain
Cookie 有效地網域名稱
如果要讓 Cookie 在 abc.com 網域下的所有子網域都有效,應該設定為 abc .com
6) secure
指明Cookie是否透過安全的HTTPS,值為0 或1
如果值為1,則Cookie 只能在HTTPS 連接上有效;如果值為預設值0,則Cookie 在HTTP 和HTTPS連線上均有效。
如果只有$name 這一個參數,則原有此名稱的 cookie 選項將會被刪除,也可以使用空字串來省略此參數。參數$expire 和 $secure 是一個整數,可以使用 0 來省略此參數,而不是使用空字串。但 參數$expire 是一個正規的 UNIX 時間整數,由time()或 mktime()函數傳回。 參數 $secure 指出此 Cookie 將只有在安全的 HTTPS 連線時傳送。
使用setcookie() 函數的全部參數設置,實例代碼如下的顯示
<?php setcookie("username","sky",time()+60*60,"/test",".php.cn",1); ?>
說明:上例中表示建立一個識別名稱為「username」 的Cookie,其內容值為字符串“sky”,而在客戶端的儲存有效期為1小時。參數"/test" 表示 Cookie 只有在故武器的這個子目錄或子目錄中才有效。參數".php.cn" 使 Cookie能在如 php.cn 域名下的所有子域中都有效,雖然 “.” 並不是必需的,但加上它會兼容更多的瀏覽器。當最後一個參數設為 1 時,則 Cookie 僅在安全的連線中才能設定。
使用setcookie()給的值只能是數字或字串,不能是其他的複雜結構。
以上是php中如何建立Cookie的詳細內容。更多資訊請關注PHP中文網其他相關文章!