首頁  >  文章  >  後端開發  >  php中如何建立Cookie

php中如何建立Cookie

伊谢尔伦
伊谢尔伦原創
2017-04-24 15:35:375073瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn