Validalas maskepp
Altalaban validalasra a regexp fuggvenyeket hasznaljak az emberek,pedig van egyszerubb modja is a validalasnak. Ket beepitett php kiterjesztest fogok bemutatni amivel konnyeden tudunk validalni.
Az elso a php filters kiterjesztes. A kiterjesztessel nem csak validalni tudunk hanem az adatok megtisztisat is konnyeden elvegezhetjuk.
De kezdjuk a validalassal. Eloszor is erdemes megneznunk milyen beepitett szuru ink vannak. Ezt a filter_list() fuggveny segitsegevel tehetjuk meg:
foreach (filter_list() as $value){ echo "$value "; }
A filterek elnevezese magaert beszel, nem is fuznek hozzajuk semmit. Nezzunk akkor egy peldat egy emailcim ellenorzesre:
$emails = array('test@test.hu','(test@test. hu)'); foreach($emails as $email){ if(filter_var($email,FILTER_VALIDATE_EMAIL)) echo $email.' egy valid emailcim. '; else echo $email.' nem valid emailcim. '; }
A masodik emailcim nem valid,mert zarojelek kozott van es van benne egy space. Tegyuk fel hogy ki szeretnenk javitani a hibat:
$emails = array('test@test.hu','(test@test. hu)'); foreach($emails as $email){ if(filter_var($email,FILTER_VALIDATE_EMAIL)) echo $email.' egy valid emailcim. '; else{ echo $email.' nem valid emailcim. '; $sanitized = filter_var($email,FILTER_SANITIZE_EMAIL); if(filter_var($sanitized,FILTER_VALIDATE_EMAIL))echo "$email sanitized valtozata:$sanitized "; } }
A masik hasznos dolog amirol irni szeretnek az a ctype. Ezzel egy stringen beluli karakterek tipusat tudjuk ellenorizni. Hasznos lehet hitelkartya adatok,telefonszamok,sot akar jelszavak validalasara is.
Nehany pelda:
$string = 'bcdefghijk2lmnopp'; ##Alfanumerikus karakterek vizsgalata if(ctype_alnum($string)) echo "A string csak alfanumerikus karaktereket tartalmaz. "; else echo "A string NEM csak alfanumerikus karaktereket tartalmaz. "; ##Angol abc karaktereinek vizsgalata if(ctype_alpha($string)) echo "A string csak alfabetikus karaktereket tartalmaz. "; else echo "A string NEM csak alfabetikus karaktereket tartalmaz. "; ##Szamok vizsgalata if(ctype_digit($string)) echo "A string csak szamokat tartalmaz. "; else echo "A string NEM csak szamokat tartalmaz. "; ##Kisbetu vizsgalata if(ctype_lower($string)) echo "A string csak kisbetuket tartalmaz. "; else echo "A string NEM csak kisbetuket tartalmaz. "; ##Nagybetu vizsgalata if(ctype_upper($string)) echo "A string csak nagybetuket tartalmaz. "; else echo "A string NEM csak nagybetuket tartalmaz. ";
Cimkék: filters, Php, validalas
