Próbuję ustawić plik cookie sesji w javascript w następujący sposób:
document.cookie = 'name=alex; path=/'
Ale Chrome nie usuwa go, nawet jeśli zamknę przeglądarkę i uruchomię ją ponownie.
Sprawdziłem w Firefox i Opera i oba działają zgodnie z przeznaczeniem - usuwają sesyjne pliki cookie przy zamykaniu przeglądarki.
Czy Chrome po prostu ignoruje reguły wygasania?
Sprawdziłem w wielu systemach operacyjnych i dowiedziałem się, że sesyjny plik cookie jest usuwany w Chrome w Windows XP i Ubuntu, ale NIE w Mac OSX Lion.
ini_set("session.cookie_lifetime", 0)
i'remember_me_seconds' => 1
. Ale to nie pomaga. Firefox działa dobrze, ale Chrome nie.Odpowiedzi:
Może to być spowodowane ustawieniem Chrome na Kontynuuj od momentu przerwania .
Dalsza lektura
źródło
Właśnie miałem ten sam problem z plikiem cookie, który wygasł po „zakończeniu sesji przeglądania”.
Niestety tak się nie stało, więc grałem trochę z ustawieniami przeglądarki.
Okazało się, że przyczyną problemu była funkcja zapamiętywania otwartych kart po zamknięciu przeglądarki. (Funkcja nosi nazwę „Przy uruchomieniu” - „Kontynuuj tam, gdzie ją przerwałam”. Przynajmniej w bieżącej wersji Chrome).
Dzieje się tak również w przypadku Opera i Firefox.
źródło
Właśnie miałem ten problem. Zauważyłem, że nawet po zamknięciu przeglądarki uruchomiłem wiele procesów Chrome. Okazuje się, że każdy z nich był z mojego rozszerzenia Chrome.
W ustawieniach zaawansowanych odznaczyłem,
'Continue running background apps when Google Chrome is closed'
a moje sesyjne pliki cookie zaczęły działać tak, jak powinny.Nadal odczuwamy ból z tyłu dla wszystkich programistów, którzy pisali kod, oczekując, że sesyjne pliki cookie zostaną usunięte, gdy użytkownik skończy przeglądanie.
źródło
Może to dlatego, że po zamknięciu przeglądarki Chrome nadal działa w tle. Spróbuj wyłączyć tę funkcję, wykonując następujące czynności:
Myślę jednak, że Chrome powinien sprawdzać i usuwać pliki cookie z poprzedniej sesji na początku zamiast zamykać.
źródło
Musiałem oba, niezaznaczone, w zaawansowanych ustawieniach Chrome:
źródło
Prostą alternatywą jest użycie nowego obiektu sessionStorage . Zgodnie z komentarzami, jeśli zaznaczysz opcję „kontynuuj tam, gdzie przerwałem”, sessionStorage będzie się utrzymywać między restartami.
źródło
Miałem ten sam problem z „document.cookie” w Windows 8.1, jedynym sposobem, w jaki Chrome usuwa plik cookie, było zamknięcie go z menedżera zadań (nie jest to naprawdę wymyślny sposób), więc postanowiłem zarządzać ciasteczkami z backendu lub użyć czegoś jak „js-cookie”.
źródło
Czy próbowałeś usunąć rozszerzenie Hangouts w Google Chrome? ponieważ zmusza Chrome do działania nawet po zamknięciu wszystkich okien.
Miałem również problem, ale teraz został rozwiązany.
źródło
Iść do
chrome://settings/content/cookies?search=cookies
Włącz
Clear cookies and site data when you quit Chrome
.Pracował dla mnie
źródło
Jeśli ustawisz domenę dla pliku cookie sesji php, przeglądarki zdają się go trzymać przez około 30 sekund. Wydaje się, że nie ma znaczenia, czy zamkniesz kartę lub okno przeglądarki.
Jeśli więc zarządzasz sesjami przy użyciu czegoś takiego, może to powodować zawieszanie się pliku cookie w przeglądarce na dłużej niż oczekiwano.
Jedynym sposobem, w jaki udało mi się pozbyć wiszącego pliku cookie, jest usunięcie wiersza kodu, który ustawia domenę pliku cookie sesji. Uważaj również na funkcję session_set_cookie_params (). Wydaje się, że prefiks kropki w domenie nie ma wpływu na problem.
Może to być błąd php, ponieważ php wysyła plik cookie sesji (tj.
PHPSESSID=b855ed53d007a42a1d0d798d958e42c9
) W nagłówku po zniszczeniu sesji. Lub może to być problem z propagacją serwerów, ale nie sądzę, ponieważ mój test był na prywatnych serwerach.źródło
Właśnie miałem problem z przechowywaniem identyfikatora sesji przez Chrome, ale nie podoba mi się pomysł wyłączenia opcji kontynuowania od momentu przerwania. Przejrzałem pliki cookie dla witryny i znalazłem plik cookie identyfikatora sesji dla strony logowania. Usunięcie tego nie rozwiązało mojego problemu. Poszukuję domeny i stwierdziłem, że w domenie jest inny plik cookie identyfikatora sesji. Usunięcie obu plików cookie identyfikatora sesji ręcznie rozwiązało problem, a ja nie zamknąłem i nie otworzyłem ponownie przeglądarki, która mogła przywrócić pliki cookie.
źródło
Rozwiązaniem byłoby użyć
sessionStorage
, FYI: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorageźródło
Google Chrome ma problem, jeśli nieprawidłowo ustawisz i rozbroisz pliki cookie. To jest kod php. Pomyślałem, że to da ci pomysł.
Ustaw ciasteczko
Niepoprawny sposób i nie będzie działać (zauważ, że PATH brakuje)
Prawidłowy sposób naprawia problem w Google Chrome
źródło