में कुकी नवीकरण/ओवरराइटिंग नहीं है I IE में कुकीज़ के साथ एक अजीब quirk है। जब कोई उपयोगकर्ता साइट पर लॉग इन करता है, तो मैं एक नया सत्र आईडी उत्पन्न कर रहा हूं और इसलिए कुकी को ओवरराइट करने की आवश्यकता है। प्रवाह मूल रूप से है:आईई
- क्लाइंट,
https://secure.example.com/users/login
पृष्ठ पर जाता है स्वचालित रूप से एक सत्र id - क्लाइंट पदों में एक ही पते पर साख के लिए लॉग इन
ग्राहक एक 302 रीडायरेक्ट के साथ एक साथ निम्नलिखित सेट कुकी शीर्ष लेख प्राप्त करता है प्राप्त करने के लिए
https://secure.example.com/users/mypage
:CAKEPHP = हटाया गया; समाप्ति = सूर्य, 05-अप्रैल -2009 04:50:35 जीएमटी; पथ =/
CAKEPHP = 98hnIO23 ...; समाप्ति = सोम, 12 अप्रैल 2010 04:50:36 जीएमटी; पथ = /; सुरक्षितक्लाइंट को
https://secure.example.com/users/mypage
पर जाना है, जो नया सत्र आईडी प्रस्तुत करता है।
यह सभी ब्राउज़रों में काम करता है, IE को छोड़कर (7 & 8 में परीक्षण किया गया)। आईई पुरानी, अनधिकृत सत्र आईडी को बरकरार रखता है, और इसे वापस लॉगिन पृष्ठ पर रीडायरेक्ट किया जाता है। यह मेरे स्थानीय परीक्षण पर्यावरण पर काम करता है (https://localhost:8443/...
पर एक स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग करके), लेकिन लाइव सर्वर पर नहीं।
मैं केकेपीएचपी का उपयोग कर रहा हूं और बस $this->Session->renew()
जारी करता हूं, जो उपर्युक्त कुकी हेडर उत्पन्न करता है।
कोई भी विचार नई कुकी को स्वीकार करने के लिए आईई कैसे प्राप्त करें?
HTTP/1.0 302 Moved Temporarily
Date: Thu, 08 Apr 2010 02:54:30 GMT
Server: Apache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Set-Cookie: CAKEPHP=deleted; expires=Wed, 08-Apr-2009 02:54:30 GMT; path=/
Set-Cookie: CAKEPHP=d55c...; expires=Thu, 15 Apr 2010 02:54:31 GMT; path=/; secure
Last-Modified: Thu, 08 Apr 2010 02:54:30 GMT
Location: https://secure.example.com/users/mypage
Vary: Accept-Encoding
Content-Length: 0
Connection: close
Content-Type: text/html; charset=utf-8
मुझे लगता है कि मैं इस समस्या पाया है:
यहाँ पूरा हैडर है आईई समान नाम के दो कुकीज़ भेज रहा है। यहाँ सर्वर के बगल में अनुरोध है: यह दो कुकीज़, एक उस में प्रवेश करने के बाद प्राप्त किया, लेकिन यह भी एक पुरानी भेजता
GET /users/mypage HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-silverlight, */ *
Referer: https://secure.example.com/users/login
Accept-Language: en-gb
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322)
Accept-Encoding: gzip, deflate
Host: secure.example.com
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: CAKEPHP=19c6...; CAKEPHP=d55c...
सूचना है कि। इसे मुख्य पृष्ठ example.com
पर पुराना प्राप्त हुआ, path=/
के साथ सेट किया गया। यह secure.example.com
के अनुरोधों के लिए भी भेज रहा है। इसे उपरोक्त शीर्षलेख द्वारा प्रतिस्थापित नहीं किया जाता है, इसके बजाय यह इसे अतिरिक्त कुकी के रूप में जोड़ता है। मैं इसे करने से कैसे रोक सकता हूं?
शायद नया बनाने से पहले पुरानी कुकी को हटाने का प्रयास करें? –
@ डेविड मैंने सोचा कि मैं यही कर रहा हूं। मैं उसी हेडर में और कैसे करूं? – deceze