Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Logowanie oparte o Ajax/Jquery.
milons
post 28.08.2013, 19:36:51
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 29.06.2011

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Posty w temacie
- milons   Logowanie oparte o Ajax/Jquery.   28.08.2013, 19:36:51


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 19:50