Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi

PHP filtri

Delite vsebino na Facebooku
Delite vsebino na Twitterju
  V današnji lekciji vam bom predstavil filtre, ki se uporabljajo za potrjevanje vnosov iz ne varnih virov, kot so npr. uporabniški vnosi, piškotki,...
 
 
1
 
 
Filtri so v PHP-ju že privzeto vključeni, tako da ni potrebno nalagati posebnih zbirk kod.

Za začetek ustvarite datoteko index.php (lahko jih uporabite tudi v kateremkoli dokumentu).
 
 
2
 
 
Za preverjanje vrednosti spremenljivk se uporabljajo naslednji filtri:
- filter_var() filtrira eno spremenljivko z določenim filtrom

- filter_var_array() filtrira več spremenljivk, z enim ali večimi filtri

- filter_input se uporablja za filtriranje enega samega vnosa

- filter_input_array pridobi več vnosnih spremenljivk in jih filtrira z enim ali večimi filtri
 
 
3
 
 
Funkcije filtrov (filtri) pa so naslednji:
- FILTER_CALLBACK poliče uporabniško določeno funkcijo za filtriranje

- FILTER_SANITIZE_STRING kodira posebne znake (obvezno za vnašanje podatkov v MySQL bazo)

- FILTER_SANITIZE_STRIPPED ima drugo ime kot zgornji filter

- FILTER_SANITIZE_ENCODED kodira URL naslov, po želji kodira posebne znake

- FILTER_SANITIZE_SPECIAL_CHARS kodira znake ' " < > & z ASCII vrednostjo

- FILTER_SANITIZE_EMAIL odstrani vse znake z izjemo črk, številk in ! # $ % & ' * + - / ? ^ _ ` { | } ~ @ . [ ]

- FILTER_SANITIZE_URL odstrani vse znake z izjemo črk, številk in $ - _ . + ! * ' ( ) , { } | \ \ ^ ~ [ ] ` < > # % " ; / ? : @ & =

- FILTER_SANITIZE_NUMBER_INT odstrani vse znake z izjemo številk in + in -

- FILTER_SANITIZE_NUMBER_FLOAT odstrani vse znake z izjemo številk, + - in po želji . , e E

- FILTER_SANITIZE_MAGIC_QUOTES uporabi funkcijo addslashes()

- FILTER_UNSAFE_RAW ne naredi nič, po želji kodira posebne znake

- FILTER_VALIDATE_INT potrdi neko spremenljivko kot integer (spremenljivka, ki vsebuje le števila), po želji tudi v določenem območju

- FILTER_VALIDATE_BOOLEAN vrne vrednost TRUE za 1, true, on in yes, ter FALSE za 0, false, off, no in prazno vrednost, drugače odvrne NULL

- FILTER_VALIDATE_FLOAT preveri, če je vrednost v formatu float

- FILTER_VALIDATE_REGEXP preveri vrednost proti regexp-ju

- FILTER_VALIDATE_URL preveri, če je spremenljivka pravilen URL naslov

- FILTER_VALIDATE_EMAIL preveri, če je vrdnost pravilen e-poštni naslov

- FILTER_VALIDATE_IP preveri, če je vrednost pravilen IP naslov, po želji v določenem rangu ter ali je verzija IPv4 ali IPv6

V kolikor česa niste razumeli, vam priporočam, da nam pišete na forum, oz. še enkrat preberete ta korak.
 
 
4
 
 
V tem primeru, vam bom prikazal, kako se uporabi filter FILTER_VALIDATE_INT.

V dokument najprej vstavite znake za PHP kodo (<?php in ?>), ter spremenljivki a določite vrednost, ki naj bo besedilo.
 
 
 
 
 
5
 
 
Nato sestavite IF stavek, v katerem bo PHP preveril, če je spremenljivka res v integer formatu.

IF stavek je sestavljen tako: if(filter_var(SPREMENLJIVKA, FILTER)) ...

if(filter_var($a, FILTER_VALIDATE_INT)){

//V tem primeru je spremenljivka v integer formatu

echo("Spremenljivka a je v integer formatu");

}
 
 
6
 
 
V zgornjem primeru, program ne bo odvrnil ničesar, saj nismo v kodi napisali, kaj naj se zgodi, v primeru, da spremenljiva ni v integer formatu.

To popravimo oz. izpopolnimo s tem, da stavku IF dodamo še else.

else{

//V tem primeru spremenljivka ni v integer formatu

echo("Spremenljivka a ni v integer formatu");
}

V tem primeru bo program odvrnil, da spremenljivka ni v integer formatu. Zdaj spremenite a v neko številčno vrednost, program pa bi vam moral odvrniti pritrdilen odgovor.
 
 
7
 
 
Če želite za preverjanje integer-ja določiti neko območje dovoljene številke, morate ustvariti array in ga vključiti v IF stavek.
Array ustvarite tako:

$obmocje=array(
"options"=>array(
"min_range"=>0,
"max_range"=>45
)
);

Pri čemer lahko spremenite le ime spremenljivke (v tem primeru obmocje) in vrednosti najmanjše in največje številke.

To v IF stavek vstavite le z dodajanjem imena spremenljivke za določen filter:

if(filter_var($a, FILTER_VALIDATE_INT, $obmocje)){

Program vam bo izpisal da je spremenljivka a integer, če je to številka, ki ne presega oz. ni manjša od določenega območja.

To je bilo za danes vse, če pa vas zanima kaj več oz. česa niste razumeli, pa nam pišite na forum.
 
 
Komentiraj
 
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!