{"id":231351,"date":"2023-01-02T10:37:00","date_gmt":"2023-01-02T07:37:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231351"},"modified":"2023-01-02T10:39:57","modified_gmt":"2023-01-02T07:39:57","slug":"peaksite-kasutama-php-filtreerimisfunktsioone-1-osa","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/peaksite-kasutama-php-filtreerimisfunktsioone-1-osa\/","title":{"rendered":"Peaksite kasutama PHP filtreerimisfunktsioone, 1. osa"},"content":{"rendered":"\n<p>Andmete desinfitseerimisest WordPressis olen <a href=\"https:\/\/wordpress.mediadoma.com\/et\/url-ide-puhastamine-wordpressis\/\" title=\"varasemates postitustes\">varasemates postitustes<\/a> r\u00e4\u00e4kinud. See on teema, mis on oluline mitte ainult neile, kes t\u00f6\u00f6tame WordPressis teistele lahenduste loomisega, vaid ka neile, kes kirjutavad koodi, mis suhtleb PHP kaudu otse andmebaasiga.<\/p>\n<p>Muidugi on WordPressi algfunktsioonid selle protsessi h\u00f5lbustamiseks, kuid selle abistamiseks on ka sisseehitatud PHP-filtreerimisfunktsioonid. Nimelt <code>filter_var<\/code>ja <code>filter_input<\/code>ja need on asjad, mida minu arvates on PHP arendajatele kasulik teada.<\/p>\n<h2>PHP filtreerimisfunktsioonid, 1. osa: muutujad<\/h2>\n<p>Muutujate filtreerimine toimub sobiva nimega <code>filter_var<\/code>funktsiooni abil. Ametlik m\u00e4\u00e4ratlus on j\u00e4rgmine:<\/p>\n<blockquote>\n<p>Filtreerib muutuja m\u00e4\u00e4ratud filtriga<\/p>\n<p><a href=\"https:\/\/www.php.net\/manual\/en\/function.filter-var.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP k\u00e4siraamat<\/a><\/p>\n<\/blockquote>\n<p>M\u00e4\u00e4ratlus ise v\u00f5ib olla veidi ringikujuline, eriti kui alles alustate PHP-ga v\u00f5i filtreerimisfunktsioonide kasutamist. Selle m\u00e4\u00e4ratluse puhul on oluline m\u00f5ista, mis filter tegelikult on.<\/p>\n<p>Nii et kui olete harjunud t\u00f6\u00f6tama n\u00e4iteks t\u00f5ev\u00e4\u00e4rtuste, t\u00e4isarvude, meiliaadresside ja muuga (ja kes mitte?), siis on see m\u00f5ttekam, kas pole? See t\u00e4hendab, et kui teil on vaja seda t\u00fc\u00fcpi v\u00e4\u00e4rtuste kohta teatud t\u00fc\u00fcpi valideerimist, v\u00f5ib see aidata.<\/p>\n<p>Suurep\u00e4rane on see, et olenemata sellest, mida te filtreerite, <code>filter_var<\/code>naaseb <code>false<\/code>see alati, kui filter eba\u00f5nnestub.<\/p>\n<p>Oletame, et soovite e-posti aadressi filtreerida, siis saate teha midagi sellist:<\/p>\n<ul>\n<li><code>filter_var($emailAddress,\u00a0FILTER_VALIDATE_EMAIL)<\/code>;<\/li>\n<\/ul>\n<p>Muidugi pole see ka ilma probleemideta. N\u00e4iteks ei kinnita see mitte-ladinakeelseid domeene. Sellest hetkeks l\u00e4hemalt.<\/p>\n<p>Igatahes, v\u00f5ib-olla soovite filtreerida teist t\u00fc\u00fcpi v\u00e4\u00e4rtusi:<\/p>\n<ul>\n<li><code>filter_var($url,\u00a0FILTER_VALIDATE_URL)<\/code><\/li>\n<li><code>filter_var('1001',\u00a0FILTER_VALIDATE_INT)<\/code><\/li>\n<\/ul>\n<p>Ja saate need vastavalt oma vajadustele keerulisemaks muuta. Oletagem, et peate n\u00e4iteks kindlaks tegema, kas IP on avalik. Siis saate kasutada midagi keerukamat, n\u00e4iteks j\u00e4rgmist:<\/p>\n<ul>\n<li><code>filter_var($ip,\u00a0FILTER_VALIDATE_IP,\u00a0FILTER_FLAG_NO_PRIV_RANGE\u00a0|\u00a0FILTER_FLAG_NO_RES_RANGE)<\/code><\/li>\n<\/ul>\n<p>Asi on selles, et on oluline teada, kuidas see <code>filter_var<\/code>t\u00f6\u00f6tab ja millised filtrid on saadaval. See on t\u00f5esti koht, kus selle kasulikkus tuleb m\u00e4ngu. Selleks soovitan tungivalt l\u00e4bi lugeda <a href=\"https:\/\/www.php.net\/manual\/en\/filter.filters.validate.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP pakutavad valideerimisfiltrid.<\/a><\/p>\n<p>L\u00f5puks pidage meeles \u00fclaltoodud m\u00e4rkust e-posti aadressidega mitte-ladinakeelsete domeenide kohta? Teatud funktsioonidega on selliseid juhtumeid, mille puhul peate enne nende kasutamist \u00fcle vaatama, mida juhend teatud URL-ide, domeenide ja muu kohta \u00fctleb.<\/p>\n<p><code>filter_var<\/code>Sellistel juhtudel ei pruugi see kahjuks alati toimida. Selle asemel v\u00f5ivad regulaaravaldised olla sobivaks asenduseks.<\/p>\n<h2>Kuidas on sisendite filtreerimisega?<\/h2>\n<p>Kui teil on kogemusi ka selliste muutujatega nagu <code>$_GET<\/code>ja <code>$_POST<\/code>siis on selle jaoks veel \u00fcks filtreerimisfunktsioon.<\/p>\n<p>J\u00e4rgmises postituses kirjeldan, kuidas k\u00f5ige paremini kasutada neid, mida paljud meist traditsiooniliselt kasutavad.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Valideerimise h\u00f5lbustamiseks on WordPressi algfunktsioonid, kuid on ka sisseehitatud PHP-filtreerimisfunktsioonid.<\/p>\n","protected":false},"author":1,"featured_media":236152,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,749,781,833,894,842,802,863],"tags":[1165],"class_list":["post-231351","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-avatud-laehtekoodiga","category-avatud-laehtekoodiga-tarkvara","category-juhend-algajatele","category-kood","category-opetused","category-php-4","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/231351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=231351"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/231351\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/236152"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=231351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=231351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=231351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}