F'dan l-artikolu, titgħallem xi suġġetti PHP utli skont it-titlu, il-Filtri u l-funzjonijiet ta' Callback. Nibdew bil-filtri.
Filtri PHP
Filtri PHP huma wżati biex sanitizzaw u jivvalidaw id-dejta tal-input.
Sanitizzazzjoni: Biex Tneħħi kwalunkwe karattri illegali mid-dejta tal-input.
validazzjoni: Proċess biex jiġi ddeterminat jekk id-dejta tal-input hijiex fil-forma xierqa.
Il-filtri PHP jiżguraw sanitizzazzjoni u validazzjoni tad-dejta qabel ma tibgħat it-talba.
Għaliex is-Sanitizzazzjoni u l-Validazzjoni huma importanti?
Ejja ngħidu li għandek qasam ta' input fuq il-paġna web tiegħek, fejn l-utent jista' jikteb l-indirizz tiegħu. Il-hackers jistgħu jibagħtu kwalunkwe skript f'dak il-qasam tal-input li jista 'jmur lis-server permezz ta' talba u jippermetti lill-hacker ixxaqqaq is-sistema, Sanitizzazzjoni ma tippermettix li xi skript jaħdem fuq in-naħa tas-server.
Min-naħa l-oħra, ejja ngħidu li għandek paġna web tal-login, li teħtieġ email u password mill-utent. Il-validazzjoni tiċċekkja jekk il-qasam tal-email huwiex mimli b'email ta' format validu u l-qasam tal-password minimu u massimu ma jinkisirx.
PHP Iffiltra Estensjoni
L-estensjoni tal-filtru PHP hija mfassla biex tagħmel il-validazzjoni tad-dejta aktar mgħaġġla u eħfef. L-estensjoni tal-filtru PHP fiha ħafna funzjonijiet integrati li jgħinu biex jiċċekkjaw id-dejta tal-input bil-faċilità.
lista_filtru funzjoni fil PHP jirritorna l-funzjonijiet kollha disponibbli fl-estensjoni tal-filtru.
<?php
foreach (filter_list() as $id =>$filter) {
echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
X'inhuma s-sorsi fejn hija meħtieġa filtrazzjoni tad-dejta?
Is-sorsi li ġejjin jistgħu jdaħħlu dejta esternament u jeħtieġ filtrazzjoni.
- Input fields f'forma
- cookies
- Data ta' servizzi tal-web
- Varjabbli tas-server
- Riżultati ta' Mistoqsijiet ta' Database
Funzjoni Filter_var fil-PHP
Din il-funzjoni kemm sanitize kif ukoll tiffiltra d-dejta maħżuna fil-varjabbli. Jaċċetta żewġ parametri. L-ewwel parametru huwa l-varjabbli li fuqha trid tapplika l-filtru. It-tieni parametru huwa t-tip ta 'filtru li għandu japplika għall-varjabbli. Issa se nitgħallmu xi tipi ta 'filtri importanti disponibbli fil-PHP.
Kif sanitize string fil PHP?
Il-filtru FILTER_SANITIZE_STRING ineħħi t-tags HTML kollha mis-sekwenza. L-attakkanti tal-web jistgħu jibagħtu skripts bħala parti mill-attributi tat-tikketta HTML. Għalhekk, it-tikketti HTML huma ta 'ħsara biex jippermettu fis-sekwenza. Ħares lejn l-eżempju li ġej.
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Kif Tivvalida Integer fil-PHP?
FILTER_VALIDATE_INT jiċċekkja jekk in-numru huwiex numru sħiħ jew le. It-tieni parametru jżomm il-filtru tal-funzjoni filer_var u l-ewwel parametru jżomm in-numru. Mur permezz tal-eżempju hawn taħt.
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
Nota: Il-funzjoni filter_var ma FILTER_VALIDATE_INT tikkunsidra 0 bħala numru mhux sħiħ. Għalhekk, jekk għandek bżonn tinkludi 0 fin-numri interi, tista 'timmodifika l-kundizzjoni jekk tal-eżempju ta' hawn fuq biex tippermetti l-0.
Kif tivvalida l-indirizzi IP fil-PHP?
FILTER_VALIDATE_IP kontrolli filtru għall-indirizz IP validu. L-ewwel parametru huwa l-indirizz IP u t-tieni parametru huwa l-isem tal-filtru fil-funzjoni filter_var.
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
echo("$ip is a valid IP address");
} else {
echo("$ip is not a valid IP address");
}
?>
Kif sanitizza u tivvalida l-Email f'PHP?
filter_var iwettaq kemm validazzjoni kif ukoll sanitizzazzjoni tal-email mgħoddija bħala t-tieni parametru għal din il-funzjoni. Biex sanitize l-email, uża FILTER_SANITIZE_EMAIL l-ewwel bil-funzjoni filer_var, u mbagħad għall-validazzjoni tal-email, uża FILTER_VALIDATE_EMAIL filtru. Ħares lejn l-eżempju hawn taħt.
<?php
$email = "john.doe@example.com";
// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
?>
Kif sanitizza l-URL fil-PHP?
Għaddi l-URL bħala l-ewwel parametru għall-funzjoni filer_var u FILTER_VALIDATE_URL bħala t-tieni parametru. Se tneħħi l-karattri illegali kollha mill-URL. Huwa utli ħafna li tiffiltra.
<?php
$url = "https://www.w3schools.com";
// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url is a valid URL");
} else {
echo("$url is not a valid URL");
}
?>
X'inhi Eċċezzjoni u kif tarmi eċċezzjoni fil-PHP?
Eċċezzjoni hija oġġett li jgħid li xi żball iseħħ waqt l-eżekuzzjoni tal-iskrittura. Il-funzjonijiet u l-klassijiet PHP jarmu eċċezzjonijiet u l-funzjonijiet definiti mill-utent jistgħu wkoll jarmu eċċezzjonijiet.
L-eċċezzjonijiet huma mod effiċjenti biex titwaqqaf funzjoni mingħajr ma jipproduċu riżultati żbaljati fl-aħħar.
il tarmi keyword tibgħat eċċezzjonijiet. Ipprova qabda block jaqbad l-eċċezzjonijiet mitfugħa mill-blokk tal-kodiċi. Jekk l-eċċezzjonijiet ma jinqabdux, se jagħti żball fatali ta 'eċċezzjoni mhux maqbuda.
Ipprova blokk tikkonsisti mill-blokk tal-kodiċi biex tippermetti l-eżekuzzjoni. lotta block tesegwixxi biss meta l-blokk try throws eċċezzjoni. Tista' tikseb informazzjoni dwar l-eċċezzjoni fil-blokka tal-qbid billi tuża l-oġġett ta' eċċezzjoni. Ħares lejn l-eżempju li ġej li fih id-diviżjoni b'eċċezzjonijiet 0 tintefa' u tinqabad fil-blokka tal-qabda.
<?php
function divide($dividend, $divisor) {
if($divisor == 0) {
throw new Exception("Division by zero");
}
return $dividend / $divisor;
}
try {
echo divide(5, 0);
} catch(Exception $e) {
echo "Unable to divide.";
}
?>
Għal referenza sħiħa għall-filtri, tista 'tirreferi hawn.