Autor Zpráva
MAUGLI
Profil *
Mam tento script ...


if (!ereg('^[_a-zA-Z0-9.-]{5,16}$', $reg_user)):
die ("
Upozornení:<BR>
1) Uživatelské jméno musí mít minimálne 5 znaku a maximalne 16 znaku.<BR>
2) Povolene znaky jsou a-z, A-Z, 0-9, tecka, cárka, pomlcka.<BR
");
endif;


... a potreboval bych poradit, jak udelat, aby se mi vzdy vypisovala jedna hlaska, kdyz neni splnena jedna podminka, tj. kdyz uzivatel zada do formulare uzivatelske jmeno kratsi nez 5 znaku, aby se vypsala hlaska "Uživatelské jméno musí mít minimálne 5 znaku" a kdyz pouzije nepovolene znaky, at se mu vypise hlaska "Povolene znaky jsou a-z, A-Z, 0-9, tecka, cárka, pomlcka"

Ja to umim jen viz nize, ale urcite to jde nejak elegatneji :)

Dekuji moc za radu od zkusenejsich
Alphard
Profil
buď více regulárních výrazů a více podmínek a nebo více podmínek s kombinací funkce strlen()
Joker
Profil
Tak to rozdělit. Například:
$hlaska = "";
if (!ereg('^[_a-zA-Z0-9.-]+$', $reg_user)) $hlaska .= "Uživatelské jméno může obsahovat jen tyto znaky: a-z, A-Z, 0-9, tečka, čárka, pomlčka.<br>";
if(strlen($reg_user) < 5) $hlaska .= "Uživatelské jméno musí mít nejméně 5 znaků!<br>";
if(strlen($reg_user) >16) $hlaska .= "Uživatelské jméno musí mít nejvýše 16 znaků!<br>";
MAUGLI
Profil *
Joker

1] Proc je pred tim $ znak + ?

2] Proc je to delane pro promenou $hlaska? Ma to nejaky konkretni duvod? Jde to i takhle, ze?

if (!ereg('^[_a-zA-Z0-9.-]+$', $reg_user))
echo "Uživatelské jméno může obsahovat jen tyto znaky: a-z, A-Z, 0-9, tečka, čárka, pomlčka.<br>";
if(strlen($reg_user) < 5)
echo "Uživatelské jméno musí mít nejméně 5 znaků!<br>";
Alphard
Profil
Proc je pred tim $ znak +
aby to bralo více znaků
Proc je to delane pro promenou $hlaska? Ma to nejaky konkretni duvod? Jde to i takhle, ze?
ano, jde
ale přijdeš tím o další možný způsob zpracování:
if ($hlaska != "")
die ($hlaska); // die by bylo v tomto případě asi zbytečně drastické, ale dobře demonstruje situaci
//jinak pokračujem
Toto téma je uzamčeno. Odpověď nelze zaslat.