2011-09-13 32 views
5

Tôi đang gỡ lỗi một vấn đề với hệ thống Magento.Có thể setcookie trong PHP dẫn đến nhiều tiêu đề "Đặt cookie" không?

Vấn đề là một tiêu đề Set-Cookie nhân đôi, như thế này:

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 được thiết lập sử dụng lệnh setcookie php. Câu hỏi của tôi là việc sử dụng không chính xác chức năng này có thể dẫn đến tiêu đề Set-Cookie trùng lặp hay không hoặc liệu tôi có phải tìm một nơi khác cho lỗi hay không ...

+0

Thậm chí nếu chức năng này được sử dụng không đúng cách, một đôi tiêu đề Cookie * không nên * nguyên nhân có vấn đề gì không; thứ hai sẽ chỉ ghi đè lên phần đầu tiên. – deceze

Trả lời

6

Có, gọi setcookie() hai lần với cùng một dữ liệu sẽ dẫn đến 2 tiêu đề giống hệt nhau Set-Cookie:. Tôi đã thử nó, và nó có.

Nó không nên gây ra một vấn đề mặc dù, cookie sẽ luôn luôn có giá trị xác định bởi các setcookie() cuộc gọi cuối cùng ...

+0

do đó, bằng tiêu đề chuẩn http có thể được xác định nhiều lần và giá trị lu mờ được sử dụng? –

+3

@Joe Đọc đoạn cuối cùng của [RFC2616 Phần 4.2] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2). Không có gì nói cụ thể rằng các giá trị trùng lặp sẽ bị ghi đè bởi giá trị sau, đó chỉ đơn giản là cách trình duyệt xử lý nó (chỉ được chơi với nó và chắc chắn IE8, FF3, Chrome và Safari đều xử lý nó như thế nào). Theo nguyên tắc chung, điều này đúng với bất kỳ thứ gì như thế này - nếu bạn đặt cùng một tham số GET hoặc POST hai lần, giá trị sau đó sẽ được cả PHP và ASP sử dụng ít nhất. – DaveRandom

+0

@DaveRandom Bạn đã cố xóa một cookie đã tồn tại và tạo lại nó với một giá trị mới, theo thứ tự này, nhưng trong cùng một phản hồi? Tôi nói rằng không có cách nào chắc chắn 100% để xác định điều gì sẽ xảy ra. – Ashnur

Các vấn đề liên quan