Tôi gặp sự cố với ứng dụng CakePHP của mình. Điều này dường như chỉ xảy ra trong IE và chỉ trên một số máy tính nhất định. Nó là phù hợp trên các máy tính mà nó đang xảy ra mặc dù.Cookie CakePHP/Số sự cố phiên
Số phát hành: Người dùng đã đăng nhập và trên trang https://example.com/users/view và nhấp vào đăng xuất. Người dùng được chuyển hướng đến http://example.com và dường như bị đăng xuất cho đến khi người dùng truy cập vào trang https khác và họ vẫn đăng nhập. Họ có thể nhấp vào đăng xuất bao nhiêu lần tùy thích nhưng họ luôn đăng nhập trên https và chỉ đăng xuất http.
Issue hai: người dùng đăng nhập vào https://example.com/users/signin họ đang chuyển hướng đến http://example.com và bây giờ dường như đang đăng nhập tài khoản đi vào https://example.com/admin/slides và không biết điều đó nhưng bây giờ được đăng xuất, nhấp vào bất kỳ trang nào khác (. hoặc chỉ cần làm mới trang hiện tại của họ) sẽ yêu cầu họ đăng nhập lại.
Tôi không biết điều gì đang diễn ra. Tôi đã đọc và thử các giải pháp được mô tả trên cả hai vấn đề tương tự nhau: Session not saving when moving from ssl to non-ssl và Cookie not renewing/overwriting in IE nhưng tôi vẫn gặp sự cố tương tự.
Đầu mối duy nhất mà tôi đã chú ý đến (và tôi không biết nếu điều này có nghĩa là bất kỳ điều gì) là khi tôi gỡ lỗi cả $_SESSION
và $this->Session->read()
trên trang HTTP LUÔN chỉ $ this-> Session-> read() trả về giá trị. trên các trang HTTPS một số LUÔN trả về cùng một giá trị cho cả hai, những người khác LUÔN LUÔN chỉ trả lại một giá trị cho $ this-> Session-> read().
Ví dụ: http://example.com và https://example.com/users không bao giờ thấy $ _SESSION, https://example.com/carts luôn thấy $ _SESSION. Tôi không chắc nhưng tôi nghĩ rằng có thể các trang an toàn được cho là đang nhìn thấy nó và vì một số không thể có điều gì đó sai, tuy nhiên khi tôi kiểm tra mã, tôi thấy không có sự khác biệt nào có thể gợi ý lý do tại sao t.
Ngoài ra, nếu tôi thêm $this->Session->destroy()
vào beforeFilter trong AppController, thì tất cả các trang ngay cả HTTP đều có thể thấy $ _SESSION. Tôi không thực sự sử dụng $ _SESSION trong ứng dụng của tôi, tôi chỉ nghĩ rằng đây có thể là một đầu mối cho những gì sai.
CẬP NHẬT
tôi tooked lời khuyên Gustav Bertram và nhìn vào chuỗi tác nhân người dùng. Tôi đã so sánh chuỗi tác nhân người dùng với IE trên máy tính đang gặp sự cố với IE trên máy tính không gặp sự cố. Họ giống nhau, ngoại trừ một vấn đề đang gặp phải vấn đề "khung google chrome" trong chuỗi tác nhân người dùng. Tôi đã gỡ cài đặt Google Chrome Frame khỏi máy tính đó, đã khởi động lại, đã thử lại và sự cố dường như đã được giải quyết.
Nếu đây là nguyên nhân thực sự, thì giải pháp đơn giản sẽ khiến người dùng gỡ cài đặt khung Chrome. Tuy nhiên tôi tự hỏi nếu có một công việc xung quanh đó sẽ cho phép họ có khung chrome được cài đặt và vẫn làm việc.
(Tôi cho rằng bạn đã loại bỏ các nghi phạm bộ nhớ cache thông thường.) Phiên bản nào của IE? Không tinkering với tiêu đề trang (bộ nhớ cache kiểm soát, vv - xem http://support.microsoft.com/kb/234067) có bất kỳ tác động? – OpenSorceress
Nội dung phiên có bị xáo trộn hay không? Có thể là các tùy chọn bảo mật .. – Dunhamzzz
Trang có bất kỳ nội dung flash nào không? Bạn đã thử thay đổi bảo mật phiên từ HIGH thành LOW chưa? – binoy