首頁  >  文章  >  後端開發  >  php怎麼設定cookie作用域?

php怎麼設定cookie作用域?

青灯夜游
青灯夜游原創
2020-07-24 16:46:583122瀏覽

在php中,可以使用setcookie()函數來設定cookie的作用域。語法為“setcookie(name,value,expire,path,domain,secure)”,可以透過設定domain參數的值來設定cookie作用域,

php怎麼設定cookie作用域?

當我們為網站設定cookie時,大家有沒有發現在網站的其他網域下也接收到了這些cookie。這些沒用的cookie看似不佔多少流量,但如果對一個日PV千萬的網站來說,那浪費的資源就不是一點點了。因此在設定cookie時,對它的作用域一定要設定準確了。

我們都知道在PHP中用setcookie 來設定網站的cookie,【相關教學推薦:《PHP教學》】

函數的用法如下:

setcookie(name,value,expire,path,domain,secure)

php怎麼設定cookie作用域?

今天我們就來探討一下它的第五個參數domain,因為它決定了cookie的作用域。

現在有以下3個域名,一個頂級域名、一個二級域名和一個三級域名:

#① zydya.com

②blog.zyday.com

③one.blog.zyday.com

  • 先在①zyday.com網域下設定cookie,做四次測試,分別設定domain參數為空、'zyday.com' 、'blog.zyday.com'與'one.blog.zyday.com'。

    √表示該網域下能取到cookie,×表示不能取到cookie

domain參數 zydya.com blog.zyday.com one.blog.zyday.com
setcookie('name',1,time() 1)  √ # √  √
setcookie('name',1,time() 1,'/','zyday.com')   # √  √
#setcookie('name',1,time()
1,'/','blog.zyday.com')
 ×  ×  ×
setcookie('name',1,time()
1,'/','one.blog.zyday.com')
× ×


##當domain設定為空時,domain預設為目前域名,並且該域名下的子域名都可以接收到cookie。 但是domain參數設定其子網域時,所有網域就接收不到了,包括那個子網域。 然後在②blog.zyday.com網域下設定cookie,測試條件同上##domain參數zydya.com 1)setcookie('name',1,time() 1,'/','zyday.com')setcookie( 'name',1,time() 1,'/','blog.zyday.com')##√×

blog.zyday.com
one.blog.zyday.com setcookie('name',1,time()
setcookie('name',1,time() 1,'/',one.blog.zyday.com') ×
##########×############## #

看第二行,domain參數是zyday.com,是blog.zyday.com的父域名,那麼zyday.com下所有子域名(包括zyday.com、blog.zyday.com、one.blog.zyday .com)都能接收到cookie。

當domain為自身網域時,那麼其父網域不受影響,本身與其子網域可以接收到cookie。
而設定其子網域或其他網域時,所有網域都接收不到cookie了。

  • 最後在③one.blog.zyday.com網域下設定cookie

##setcookie('name',1,time()##×√setcookie('name',1,time() 1,'/','zyday.com')√√√setcookie('name ',1,time() 1,'/','blog.zyday.com')#×setcookie('name',1,time() 1,'/',one.blog.zyday.com')
domain參數 zydya.com blog.zyday.com one.blog.zyday.com
1)
##√ #√
× × #√
##第三個測試的結論在上面已經總結了。再看一遍,這裡就不多解釋了。

domain的設置,有兩點要注意:

1.在setcookie中省略domain參數,那麼domain預設為目前網域。

2.domain參數可以設定父域名以及自身,但不能設定其它域名,包括子域名,否則cookie不起作用。

那麼cookie的作用域:

cookie的作用域就是domain本身以及domain下的所有子網域。

推薦學習:

PHP程式設計從入門到精通

#

以上是php怎麼設定cookie作用域?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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