Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]strlen a puste pole
Forum PHP.pl > Forum > Przedszkole
finito
W uproszczeniu mam taki kod.
  1. $user_len = strlen(utf8_decode($user));
  2. if ($user_len<3)
  3. {
  4. echo "to small";
  5. }
  6. if ($user == "")
  7. {
  8. echo "empty";
  9. }


i teraz, gdy nie wpisuję nic w formularzu logowania, a klikam "zaloguj" cały czas mi wyskakuje echo "to small" a nie to drugie. Czemu?
nospor
bo 0 jest mniejsze od 3? Podstawy matematyki?
Zmien kolejnosc ifow...
Crozin
W chwili obecnej wywali Ci:
Kod
to smallempty
Ponieważ przy pustej ("") zawartości zmiennej oba warunki są prawdziwe.
nospor
poza tym powinienes uzyc ELSEIF
finito
Poprawiłem tam, gdzie było trzeba i dokładnie tak, jak poradziliście. Nawet zmieniłem strukturę na else if i dalej jest to samo. Wybaczcie, że nie wrzucę kodu, ale mam więcej plików i za dużo tego. Właściwie wszystko mi działa cacy z wyjątkiem poprawności tej jednej rzeczy.
nospor
Pokaz swoje poprawki, bo pewnie źle poprawiles...
finito
Poprawiłem na tak...
Fragment funkcji testLogin($user,$pass):
  1. $user_len = strlen(utf8_decode($user));
  2. $pass_len = strlen(utf8_decode($pass));
  3. if ($user = "" || $pass = "")
  4. {
  5. return EMPTY_FIELDS;
  6. }
  7. else if ($user_len<6 || $user_len>20 || $pass_len<3 || $pass_len>40)
  8. {
  9. return PASS_OR_USER_WRONG_LEN;
  10. }
  11. else
  12. {
  13. return OTHER_THING;
  14. }

oraz fragment jej wywołania:
  1. else if ($val == EMPTY_FIELDS)
  2. {
  3. $_SESSION['k']="Nie wprowadzono danych";
  4. include('index.php');
  5. }
  6. else if ($val == PASS_OR_USER_WRONG_LEN)
  7. {
  8. $_SESSION['k']="Zła długość znaków";
  9. include('index.php');
  10. }
  11. else
  12. {
  13. echo "inny problem";
  14. }
nospor
Odrozniaj
=
od
==

jedno to przypisanie, drugie porownanie...
johny_s
a wiesz czym się różni operator przypisania od porównania?
finito
Przepraszam najmocniej;-)))))))))))
Oczywiście, że odróżniam. To jest przypisanie:"=", a to jest porównanie:"==".
Czeski błąd. Po prostu ślepok ze mnie i tyle.
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.