Autor Zpráva
Duchaplny
Profil
Zdravím,

rád by som vo svojich formulároch nastavil, aby ignorovali medzery, diakritiku prevádzali na písmená bez diakritiky a ignorovali entity, čísla a pod. znaky. Ako by sa to dalo všetko riešiť ? Najlepšie v jednom zápise.
peta
Profil
Duchaplny: regularni vyrazy, php, javascript? "vo svojich formulároch" Stale je to jen tvuj formular, az bude verejny a pridas lepsi popis, jak si predstavujes, ze to ma presne fungovat, tak by se dalo bavit konkretneji.
Duchaplny
Profil
peta
Ide o filtráciu mena, keď niekto napr. zadá meno "Krabička 456 ,.!& páv", tak to zapíše do DB len "Krabickapav". Zápis do DB mám vyriešený, jedná sa len o tú filtráciu (bez JavaScriptu). Čísla, znaky a medzery úplne zmaže a diakritiku nahradí písmenami bez diakritiky. Napr. som skúšal toto:
$name="$_POST[meno]";
$meno = str_replace (" ", "", $name);
Čo je v podstate ok, funguje to na medzery, ale neviem ako to napr. použiť na čísla a znaky (jedine ich všetky vypísať pod seba a to je moc dlhé). Napr. čísla som skúšal cez is_int() ako podmienku:
if (is_int($name)===true) {echo "Meno nesmie obsahovať čísla !";}
ale aj keď $name obsahuje čísla, tak to vypíše normálne. BTW: Nechcem to riešiť týmto štýlom (varovanie, čo sa nesmie používať), to som len skúšal.
Duchaplny
Profil
Pozeral som tie regulárne výrazy a dospel som k riešeniu, ale podľa manuálu, je to zastaralé a nedoporučuje sa to používať.
echo ereg_replace("[0123456789 ]+", "", $name);
Toto vlastne vymaže všetky čísla a medzery. S tými znakmi si stále neviem rady, je ich moc. V podstate ide o to, aby sa mi na stránku nezaregistroval užívateľ napr. ".,_?§()", chcem to nejak ošetriť.

EDIT:
echo ereg_replace("[0123456789 .,!?&§():_-]+", "", $name);
Všetky znaky sa asi nedajú ošetriť alebo dajú ?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: