2011-01-14 7 views
6

Załóżmy, że mam dwa ciasteczka sesyjne, które wygląda jakRóżnica pomiędzy hosta i domeny w parametrach Cookie PHP

Pierwszy jeden

Name: d58ba4091c622661a0d46f03b412ac8b 
Content: m9ciub2u3ig59638r43uqjb8e6 
Host: www.example.com 
Path:/
Send for: Any type of connection 
Expires:Sunday, February 27, 2011 5:50:18 PM 

i drugim jednej

Name: test 
Content: kdfssdfb2ufdfjww3436detasd 
Domain: .www.example.com 
Path:/
Send for: Any type of connection 
Expires:Sunday, February 27, 2011 5:50:18 PM 

Jeśli można zobaczyć pierwszy zawierają Host parameter i wartość, a druga zawiera parametr Domain. Czym dokładnie się zajmują i jaka jest różnica między nimi?

Dzięki

+0

Może się okazać [ '$ cookie-> setDomain ($ domena)'] (https://github.com/delight- im/PHP-Cookie/blob/004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php # L117) pomocne, jak można znaleźć w [tej samodzielnej bibliotece] (https://github.com/delight-im/PHP-Cookie). To poradzi sobie z pewnymi wysiłkami normalizacyjnymi. – caw

Odpowiedz

11

Zgodnie z komentarzami do setcookie() function description, różnica jest następująca:

  • Host: www.example.com

jest ograniczony do określonego hosta, więc to ciasteczko zostanie nie są widoczne ani dla zupełnie innych domen, ani dla subdomen. Taki plik cookie jest tworzony jeśli setcookie() parametr $ domena jest ustawiony na pusty ciąg:

setcookie($name, $value, time()+3600, $path, ""); 
  • domeny: .www.example.com

jest ograniczona do określonej domeny, więc ciasteczko zostanie być widoczne dla poddomen określonej domeny (wszystkie domeny, takie jak * .www.example.com). Taki plik cookie jest tworzony jeśli setcookie() parametr $ domena jest ustawiony na jakimś domenie:

setcookie($name, $value, time()+3600, $path, "www.example.com"); 
Powiązane problemy