Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Proste uwierzytelnienie
Forum PHP.pl > Forum > Przedszkole
finito
Chyba mnie krew zaleje za chwilę. Rejestrowanie mi działa tzn. dodają się kolejne rekordy, ale gdy chce się zalogować, to wyskakuje mi błąd, który sam zdefiniowałem czyli: za krótka nazwa usera lub hasła. User daje przykadowo tomeczek a haslo 2ws3ed4rf. Czy ma ktoś pomysł co jest poniższym kodzie źle? Celowo nie daje całego kodu, bo by mnie admini zatłukli. Ale sęk w tym, że kod mi generalnie działa. Tylko logowanie nie. Nie wiem, jakiś ptaszek jest źle, a jestem ślepy i nie widzę?
  1. define('TO_SMALL_USER_OR_PASS',1);
  2.  
  3. $user_len = strlen(utf8_decode($user));
  4. $pass_len = strlen(utf8_decode($pass));
  5. if ($user_len < 3 || $user_len > 20 || $pass_len < 6 || $pass_len > 40)
  6. {
  7. return TO_SMALL_USER_OR_PASS;
  8. }


Aha, zapomniałem dodać. Najpierw zrobiłem kod logowania i to logowanie mi działało. Potem dorobiłem kod rejestracji i tak się porobiło, że rejestracja mi działa, a logowanie już nie, mimo, że wcześniej hulało.

Jak już mówiłem, krew mnie chyba zaleje. Nie wiem, może to kwestia kodowania albo coś.

******************
Najmocniej przepraszam za zamieszanie. Zapomniałem o starej metodzie echo, którą można prześledzić kod i sprawdzić gdzie jest problem. Nie wiem jeszcze gdzie jest mój problem, ale wpisałem to echo między klamry i okazuje się, że tu problemu nie ma. Sory.
***************
PROBLEM SIĘ ROZWIĄZAŁ i wiem o co chodzi, ale nie wiem dlaczego. Po prostu po dopisaniu kodu rejestracji, pozmieniałem zmienne w formlurzu logowania z nazwa na user. Od tego momentu logowanie przestało działać. Gdy z powrotem zmieniłem z user na nazwa, wszystko hula, ale pojęcia nie mam czemu. F5 wciskałem ze 20 razy i nie działało, więc to nie chodziło o to.

Sam nie wiem, parser zapamiętał poprzednią zmienną?
markuz
Jak dla mnie ten warunek:
  1. if ($user_len < 3 || $user_len > 20 || $pass_len < 6 || $pass_len > 40)

Zawsze zwróci TRUE.

@down Chyba na dzisiaj za dużo kodu - oczy już nie wyrabiają heh smile.gif
Xart
@UP Nie....

if ($user_len < 3 || $user_len > 20 || $pass_len < 6 || $pass_len > 40)

ma być mniejsze od 3 czyli przedział (0, 3) LUB większe od 20 czyli (20, nieskonoczonosc) czyli w SUMIE = (0, 3) u (20, niesk.)
więc każde wyrażenie pomiędzy 3 a 20 zwróci FALSE
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.