2011-09-13 12 views
5

Mam debugowanie problemu z systemem Magento.Czy setcookie w PHP może dać wiele nagłówków "Set-Cookie"?

Problemem jest powielany nagłówka Set-Cookie, tak:

Set-Cookie: flimmit_session=search-0c30086b812519b006aa27ef4f37f15b-24; path=/; domain=.flimmit.com; httponly 
Set-Cookie: flimmit_session=search-0c30086b812519b006aa27ef4f37f15b-24; path=/; domain=.flimmit.com; httponly 

Cookie jest ustawiana za pomocą polecenia SetCookie PHP. Moje pytanie brzmi, czy nieprawidłowe użycie tej funkcji może spowodować zduplikowanie nagłówka Set-Cookie, czy też muszę szukać gdzieś indziej dla błędu ...

+0

Nawet jeśli ta funkcja jest używana nieprawidłowo, podwojona nagłówek Cookie * * przyczyny nie powinno jakieś problemy; drugi po prostu zastąpi pierwszy. – deceze

Odpowiedz

6

Tak, wywołanie setcookie() dwa razy z tymi samymi danymi spowoduje 2 identyczne nagłówki: Set-Cookie:. Właśnie tego wypróbowałem i tak jest.

To nie powinno powodować problemu choć cookie zawsze będzie mieć wartość określoną przez ostatni setcookie() rozmowy ...

+0

, więc przez standardowe nagłówki http można zdefiniować wiele razy i użyć wartości latującej? –

+3

@Joe Przeczytaj ostatni akapit [RFC2616, sekcja 4.2] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2). Nie ma nic, co by mówiło, że powielone wartości zostaną nadpisane późniejszą wartością, czyli po prostu jak sobie z tym poradzą przeglądarki (po prostu bawiliśmy się z nią i na pewno tak sobie radzą IE8, FF3, Chrome i Safari). Zasadniczo jest tak w przypadku wszystkich podobnych sytuacji - jeśli dwukrotnie ustawisz ten sam parametr GET lub POST, późniejsza wartość będzie używana zarówno przez PHP, jak i ASP. – DaveRandom

+0

@DaveRandom Czy próbowałeś usunąć istniejący plik cookie i utworzyć go ponownie z nową wartością, w tej kolejności, ale w tej samej odpowiedzi? Twierdzę, że nie ma 100% pewnego sposobu na określenie, co się stanie. – Ashnur