![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 1 Dołączył: 20.01.2008 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Witam prezentuje mój skrypt logowania:
Jest jedno ale. Skrypt ten działa z opóźnieniem tzn gdy próbuje się logować skrypt wykonuje wszystko poprawnie. Wyskakuje mi okienko poprawnie zalogowano i przenosi mnie po 4 sekundach do index.php, jednak ukazuje mi się nadal formularz logowania, gdy odświeże stronę wszystko jest ok zalogowało. Tak samo jest przy wylogowywaniu: klikam wyloguj, wyskakuje okienko wylogowało ale tak naprawdę nie wylogowało i z powrotem przenosi mnie do wylogowywania. Gdy spróbuje następnym razem wszystko jest ok. Tak jakby usuwało zmienne sesji po czasie i przy logowaniu tak jakby tworzyło zmienne sesji z małym opóźnieniem. Czym może to być spowodowane? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 207 Pomógł: 17 Dołączył: 4.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
zacznijmy może od tego, że nie warto tworzyć tylu sesji, bo można stworzyć sesję "user_login", po czym funkcje do wyciągania danych użytkownika z bazy mysql. Jedno proste zapytanko i masz wszystkie informacje o danym użytkowniku. A tworzysz do najzwyczajniej w świecie: mysql_fetch_assoc(mysql_query("SELECT * FROM `uzytkownicy` WHERE `login` = '".$_SESSION['user_login']."' i zobacz jaki masz porządek od razu w kodzie. Następną rzeczą jest warunek sprawdzający sesję użytkownika czy jest zalogowany, czy nie. Nie rozumiem po co używasz if($_SESSION['sesja'] != 'istnieje'){, skoro możesz wcześniej zarejestrować sesję "zalogowany=true" i później sprawdzać warunek tak: if ($_SESSION['zalogowany'] {. Nie brzmi lepiej i przejrzyściej? Poza tym radzę poczytać o atakach sql_injection i xss, bo Twój skrypt jest bardzo na to podatny.
i proponuję poczytać jeszcze o funkcji isset, która prawdopodobnie rozwiąże Twój problem. pozdrawiam ![]() Ten post edytował Ramzaa 24.08.2010, 20:22:23 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 1 Dołączył: 20.01.2008 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za przydatne podpowiedzi. Może i racja z tymi zmiennymi, usunę niepotrzebne ale parę się przyda do szybkiego identyfikowania np user_lastlogin i user_position
Są jeszcze jakieś pomysły dlaczego ten konkretny skrypt nie działa? Wiem że może nie jest bezpieczny ale logować poprawnie powinien ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kurde też miałem kiedyś taki numer, ale pamiętam to jak przez mgłę. Póki co prowizorycznie daj funkcję na przeładowanie strony, aż nie pojawi się jakiś stary wyjadacz
![]() -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 1 Dołączył: 20.01.2008 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Sam do tego doszedłem czytając trochę o sesjach. Przy wylogowywaniu sprawdzam czy zmienna sesji 'sesja' ma wartość istnieje. Oczywiście że ma bo session_destroy(); nie usuwa zmiennych sesji. Trzeba użyć komendy unset.
@edit:
Skrypt wygląda następująco. Problem z wylogowywaniem rozwiązany, a sprawa logowania wciąż pozostaje. bump Ten post edytował Kaarpiik 26.08.2010, 09:00:38 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 12:20 |