Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Proste uwierzytelnienie
finito
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 16.12.2012

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


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ą?

Ten post edytował finito 2.07.2014, 16:21:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
markuz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


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

Ten post edytował markuz 2.07.2014, 20:15:49


--------------------
Go to the top of the page
+Quote Post
Xart
post
Post #3





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


@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

Ten post edytował Xart 2.07.2014, 20:11:25
Go to the top of the page
+Quote Post

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 Aktualny czas: 20.08.2025 - 10:00