Witam.

Projektuję portal w którym logowanie ma odbywać się dynamicznie za pomocą Ajaxa i plików COOKIES.
W skrócie wygląda to tak:
Jeśli nie jestem zalogowany - w menu pojawia się Rejestracja i Logowanie.
Po kliknięciu na Logowanie pojawia się popup z formularzem logowania (Okno dialogowe to gotowy skrypt znaleziony w internecie).
Zasotosowałem podwójną walidację - najpierw JavaScript sprawdza czy wszystkie pola są wypełnione, nastepnie wysyła to do za pomocą $.ajax do pliku PHP. Tam odbywa się druga walidacja - sprawdzam czy istnieje użytkownik, czy hasło jest poprawne. Skrypt daje odpowiednią odpowiedź z powrotem i podejmowana jest odpowiednia akcja - wyświetlany komunikat lub poprawne logowanie.
I z nim właśnie mam problem.

W duuuuużym skrócie kod wygląda tak:
  1. //fragment kodu odpowiedzialny za logowanie - hasło i login już są sprawdzone.
  2. setcookie("zalogowany", true, time()+20*12*30*86400);
  3. setcookie("login", $login, time()+20*12*30*86400);
  4. print "5^Zalogowano poprawnie";


po otrzymaniu kodu 5 Jquery przeładowuje stronę

window.setTimeout('window.location = window.location', 1000);


Teraz problem - przy przeładowaniu nie zostaje zapisane Cookie.
Przy przetwarzaniu zapyrtania Ajaxowego sprawdzam też czy użytkownik nie jest już zalogowany (w razie gdyby cos się posypało i ktoś zalogowany chciałby się zalogować).
Tu jednak okazuje się, że jestem już zalogowany biggrin.gif

Przedstawię to prościej:
Przy przeładowaniu strony po zalogowaniu i przy przechodzeniu między stronami - nie zostają przesyłane ciasteczka.
Nagłówki (w skrócie)
  1. Accept:*/*
  2. Accept-Encoding:gzip,deflate,sdch
  3. Accept-Language:pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
  4. Connection:keep-alive
  5. Content-Length:46
  6. Content-Type:application/x-www-form-urlencoded; charset=UTF-8
  7. Cookie:zalogowany=1; login=admin
  8. User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36
  9. X-Requested-With:XMLHttpRequest

Przy Ajaxowym zapytaniu okazuje się żę ciasteczko jest wysłane (a w tym ciastku jest informacja że jestem już zalogowany biggrin.gif


Nagłówki:
  1. Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  2. Accept-Encoding:gzip,deflate,sdch
  3. Accept-Language:pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
  4. Connection:keep-alive
  5. User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36


Gdzie robię błąd? Czy coś jest nie tak z window.location?


Wiem że trochę namieszałem ale nie wiem jak inaczej opisać swój problem