{"id":231808,"date":"2023-01-02T11:13:00","date_gmt":"2023-01-02T08:13:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231808"},"modified":"2023-01-02T11:14:44","modified_gmt":"2023-01-02T08:14:44","slug":"vous-devriez-utiliser-les-fonctions-de-filtrage-php-partie-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/vous-devriez-utiliser-les-fonctions-de-filtrage-php-partie-1\/","title":{"rendered":"Vous devriez utiliser les fonctions de filtrage PHP, partie 1"},"content":{"rendered":"\n<p>J&rsquo;ai parl\u00e9 de la d\u00e9sinfection des donn\u00e9es dans WordPress dans <a href=\"https:\/\/wordpress.mediadoma.com\/fr\/desinfection-des-url-dans-wordpress\/\" title=\"les articles pr\u00e9c\u00e9dents\">les articles pr\u00e9c\u00e9dents<\/a>. C&rsquo;est un sujet qui est important non seulement pour ceux d&rsquo;entre nous qui travaillent \u00e0 cr\u00e9er des solutions pour les autres dans WordPress, mais aussi pour ceux qui \u00e9crivent du code qui interagira directement avec une base de donn\u00e9es via PHP.<\/p>\n<p>Bien s\u00fbr, il existe des fonctions WordPress natives pour faciliter ce processus, mais il existe \u00e9galement des fonctions de filtrage PHP int\u00e9gr\u00e9es pour vous aider. \u00c0 savoir <code>filter_var<\/code>et <code>filter_input<\/code>et ce sont des choses que je pense utiles pour les d\u00e9veloppeurs PHP.<\/p>\n<h2>Fonctions de filtrage PHP, Partie 1\u00a0: Variables<\/h2>\n<p>Le filtrage des variables est effectu\u00e9 par la fonction bien nomm\u00e9e <code>filter_var<\/code>. La d\u00e9finition officielle est :<\/p>\n<blockquote>\n<p>Filtre une variable avec un filtre sp\u00e9cifi\u00e9<\/p>\n<p><a href=\"https:\/\/www.php.net\/manual\/en\/function.filter-var.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Le manuel PHP<\/a><\/p>\n<\/blockquote>\n<p>La d\u00e9finition elle-m\u00eame peut sembler un peu circulaire, surtout si vous d\u00e9butez avec PHP ou avec l&rsquo;utilisation de fonctions de filtrage. La chose importante \u00e0 comprendre dans cette d\u00e9finition est ce qu&rsquo;est r\u00e9ellement un filtre.<\/p>\n<p>Donc, si vous avez l&rsquo;habitude de travailler avec, disons, des valeurs bool\u00e9ennes, des entiers, des adresses e-mail, etc. (et qui ne l&rsquo;est pas\u00a0?), alors cela a plus de sens, n&rsquo;est-ce pas\u00a0? Autrement dit, si vous devez fournir un certain type de validation autour de ces types de valeurs, cela peut vous aider.<\/p>\n<p>Ce qui est g\u00e9nial, c&rsquo;est que peu importe ce que vous filtrez, il <code>filter_var<\/code>reviendra <code>false<\/code>chaque fois que le filtre \u00e9chouera.<\/p>\n<p>Supposons que vous souhaitiez filtrer une adresse e-mail, vous pouvez faire quelque chose comme ceci\u00a0:<\/p>\n<ul>\n<li><code>filter_var($emailAddress,\u00a0FILTER_VALIDATE_EMAIL)<\/code>;<\/li>\n<\/ul>\n<p>Bien s\u00fbr, ce n&rsquo;est pas sans quelques pi\u00e8ges. Par exemple, il ne validera pas les domaines non latins. Plus \u00e0 ce sujet momentan\u00e9ment.<\/p>\n<p>Quoi qu&rsquo;il en soit, vous souhaitez peut-\u00eatre filtrer d&rsquo;autres types de valeurs\u00a0:<\/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>Et vous pouvez les rendre plus compliqu\u00e9s en fonction de vos besoins. Disons, par exemple, que vous devez d\u00e9terminer si une adresse IP est publique. Ensuite, vous pouvez utiliser quelque chose de plus \u00e9labor\u00e9 comme ceci :<\/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>Le fait est qu&rsquo;il est important de savoir comment <code>filter_var<\/code>fonctionne ainsi que quels filtres sont disponibles. C&rsquo;est vraiment l\u00e0 que l&rsquo;utilit\u00e9 de cela entre en jeu. \u00c0 cette fin, je recommande fortement de lire <a href=\"https:\/\/www.php.net\/manual\/en\/filter.filters.validate.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">les filtres de validation propos\u00e9s par PHP.<\/a><\/p>\n<p>Enfin, souvenez-vous de la note ci-dessus concernant les domaines non latins avec des adresses e-mail\u00a0? Il y a quelques cas comme celui-ci avec certaines fonctionnalit\u00e9s pour lesquelles vous devrez revoir ce que le manuel a \u00e0 dire concernant certaines URL, domaines, etc. avant de les utiliser.<\/p>\n<p>Dans ces cas, malheureusement, <code>filter_var<\/code>cela ne fonctionne pas toujours. Au lieu de cela, les expressions r\u00e9guli\u00e8res peuvent \u00eatre un remplacement appropri\u00e9.<\/p>\n<h2>Qu&rsquo;en est-il du filtrage des entr\u00e9es\u00a0?<\/h2>\n<p>Si vous avez l&rsquo;habitude de travailler avec des variables comme <code>$_GET<\/code>et <code>$_POST<\/code>alors il y a une autre fonction de filtrage sp\u00e9cifiquement pour cela.<\/p>\n<p>Et dans le prochain article, je vous expliquerai comment utiliser au mieux ceux en place que beaucoup d&rsquo;entre nous utilisent traditionnellement.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il existe des fonctions WordPress natives pour faciliter la validation, mais il existe \u00e9galement des fonctions de filtrage PHP int\u00e9gr\u00e9es.<\/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":[893,717,832,780,748,801,841,862],"tags":[1167],"class_list":["post-231808","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-logiciels-open-source","category-open-source-projektmanagement-2","category-php-3","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231808","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=231808"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231808\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/236152"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=231808"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=231808"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=231808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}