{"id":4313,"date":"2022-08-02T19:32:58","date_gmt":"2022-08-02T22:32:58","guid":{"rendered":"https:\/\/categoriaoutros.com.br\/?p=4313"},"modified":"2022-09-14T15:06:41","modified_gmt":"2022-09-14T18:06:41","slug":"php-aula-33-validacao-e-sanitizacao-de-formulario","status":"publish","type":"post","link":"https:\/\/categoriaoutros.com.br\/?p=4313","title":{"rendered":"PHP &#8211; Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio"},"content":{"rendered":"\n<p>Na <a href=\"https:\/\/categoriaoutros.com.br\/?p=4263\">aula 32<\/a> vimos como separar o c\u00f3digo em diversas p\u00e1ginas para facilitar o entendimento. Mas aqui iremos continuar a fazer tudo em uma \u00fanica p\u00e1gina para evitar confus\u00e3o ou complexidade. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tipos de Valida\u00e7\u00f5es<\/h2>\n\n\n\n<p>Existem dois tipos de valida\u00e7\u00f5es:&nbsp;client-side e server-side. <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>client-side <\/strong>ou &#8220;do lado do cliente&#8221;: realizado nos navegadores web dos usu\u00e1rios. Podemos usar valida\u00e7\u00e3o em HTML5 ou JavaScript. No entanto, a valida\u00e7\u00e3o do lado do cliente n\u00e3o impede que usu\u00e1rios mal-intencionados enviem dados que possam explorar maliciosamente o aplicativo.<\/li><li><strong>server-side<\/strong> ou &#8220;do lado do servidor&#8221;: valida os dados no servidor web usando PHP. Podemos usar as fun\u00e7\u00f5es <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">filter_var() <\/mark>e <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">filter_input()<\/mark>.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Sanitiza\u00e7\u00e3o e valida\u00e7\u00e3o de dados do formul\u00e1rio<\/h2>\n\n\n\n<p>O processo de captura e exibi\u00e7\u00e3o dos dados do formul\u00e1rio enviado \u00e9 bastante simples. Mas devemos nos preocupar com o envio e recep\u00e7\u00e3o dos dados.<\/p>\n\n\n\n<p><strong>Sanitiza\u00e7\u00e3o<\/strong> \u00e9 um termo que significa, mais ou menos, <strong>higienizar<\/strong>. Qualquer valor, vari\u00e1vel, recebida externamente, de outra p\u00e1gina, deve ser higienizada, pois pode haver c\u00f3digo malicioso que danificar\u00e1 nosso sistema PHP.<\/p>\n\n\n\n<p><strong>Valida\u00e7\u00e3o<\/strong> \u00e9 outro termo que devemos fazer antes do usu\u00e1rio enviar os dados. Exemplo, podemos evitar que um campo obrigat\u00f3rio seja enviado em branco, ou que um campo de telefone contenha letras.<\/p>\n\n\n\n<p>Iremos explicar um pouco, mas temos esses artigos a respeito do assunto tamb\u00e9m:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/categoriaoutros.com.br\/?p=4274\">PHP: Usando as Fun\u00e7\u00f5es filter_has_var() e isset()<\/a><\/li><li><a href=\"https:\/\/categoriaoutros.com.br\/?p=4284\">PHP: Usando a Fun\u00e7\u00e3o filter_var() para Sanitiza\u00e7\u00e3o e Valida\u00e7\u00e3o de Dados<\/a><\/li><li><a href=\"https:\/\/categoriaoutros.com.br\/?p=4299\">PHP: Tabelas com Filtros Usados em Algumas Fun\u00e7\u00f5es do PHP, como em filter_var() ou filter_input()<\/a><\/li><li><a href=\"https:\/\/categoriaoutros.com.br\/?p=4292\">PHP: Usando a Fun\u00e7\u00e3o filter_input()<\/a><\/li><li><a href=\"https:\/\/categoriaoutros.com.br\/?p=4314\">PHP: Mai\u00fascula ou Min\u00fascula com as Fun\u00e7\u00f5es strtoupper(), strtolower(), ucfirst() e ucwords()<\/a><\/li><li><a href=\"https:\/\/categoriaoutros.com.br\/?p=4319\">PHP: Usando a Fun\u00e7\u00e3o trim() para Remover Espa\u00e7o do In\u00edcio e Fim de uma String<\/a><\/li><\/ul>\n\n\n\n<p>Para sanitizar podemos usar as fun\u00e7\u00f5es filter_var() ou filter_input().<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>USANDO FILTER_VAR()<\/strong><\/p>\n\n\n\n<p>Suponha que um formul\u00e1rio envie a idade pela URL, isto \u00e9, usando get; podemos evitar que caracteres sejam digitados.<\/p>\n\n\n\n<p>Abaixo, vamos supor que o formul\u00e1rio envia a vari\u00e1vel <em><strong>idade=40<\/strong><\/em> pela URL, ou seja, usando m\u00e9todo GET. Podemos tratar da seguinte maneira:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-small-font-size\"><code>$idade = <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"> filter_var(<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">$_GET&#91;'idade']<\/mark>, <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">FILTER_SANITIZE_NUMBER_INT<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">)<\/mark>;<\/code><\/pre>\n\n\n\n<p>Explicando: <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>filter_var() trata a vari\u00e1vel <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">$_GET[&#8216;idade&#8217;]<\/mark> recebida do formul\u00e1rio<\/li><li>\u00e9 usado o filtro <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">FILTER_SANITIZE_NUMBER_INT<\/mark> de forma que mesmo que o usu\u00e1rio, por acidente, digite 34r ao inv\u00e9s de 34 o &#8220;r&#8221; intruso ser\u00e1 removido automaticamente.<\/li><\/ul>\n\n\n\n<p>H\u00e1 diversos outros filtros: <strong><code>FILTER_VALIDATE_EMAIL<\/code><\/strong>, <strong><code>FILTER_SANITIZE_STRING<\/code><\/strong>, <strong><code>FILTER_SANITIZE_URL<\/code><\/strong>&#8230;. <a href=\"https:\/\/categoriaoutros.com.br\/?p=4299\">clique aqui para ver uma lista de filtros<\/a>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>USANDO FILTER_INPUT()<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-small-font-size\"><code>filter_input(INPUT_GET, '<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">pesquisa<\/mark>', <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">FILTER_SANITIZE_SPECIAL_CHARS<\/mark>);<\/code><\/pre>\n\n\n\n<p>Acima temos:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>INPUT_GET <\/strong>quer dizer que a vari\u00e1vel  &#8216;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">pesquisa<\/mark>&#8216; foi recebida pela url, ou seja, m\u00e9todo GET. Al\u00e9m de INPUT_GET temos <code>INPUT_POST<\/code>,&nbsp;<code>INPUT_COOKIE<\/code>,&nbsp;<code>INPUT_SERVER<\/code>, e&nbsp;<code>INPUT_ENV<\/code>.<\/li><li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">pesquisa<\/mark> \u00e9 uma vari\u00e1vel recebida atrav\u00e9s da URL, ou seja, pelo m\u00e9todo GET. Exemplo:  http:\/\/localhost\/meusite\/index.php?<strong>pesquisa<\/strong>=<strong>comprar<\/strong>. Aqui, <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">pesquisa<\/mark> recebe o valor comprar.<\/li><li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">FILTER_SANITIZE_SPECIAL_CHARS<\/mark> quer dizer que queremos sanitizar caracteres especiais(&#8230;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">SPECIAL_CHARS<\/mark>), tais com %, @, &amp;&#8230;.  Ao final desse artigo publico uma tabela com as principais flags de sanitiza\u00e7\u00e3o.<\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Diferen\u00e7as Entre filter_var() e filter_input()<\/h2>\n\n\n\n<p>Vimos no post anterior sobre a fun\u00e7\u00e3o filter_var() quem tem funcionalidade similar \u00e0 filter_input() mas com pequenas diferen\u00e7as, tais como:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Se uma vari\u00e1vel n\u00e3o existir<\/strong>, a fun\u00e7\u00e3o<mark>&nbsp;<\/mark><mark>filter_input()&nbsp;<\/mark>retorna&nbsp;<mark>null<\/mark>&nbsp;enquanto a fun\u00e7\u00e3o<mark>&nbsp;filter_var()<\/mark>&nbsp;retorna uma&nbsp;<mark>string vazia<\/mark>&nbsp;e emite uma notifica\u00e7\u00e3o na tela. A notifica\u00e7\u00e3o \u00e9 do tipo: \u201c<em><mark>Notice: Undefined index: term in \u2026\\search.php on line 3 string(0)<\/mark><\/em>\u201c<\/li><li>A fun\u00e7\u00e3o&nbsp;<mark>filter_input()<\/mark>&nbsp;n\u00e3o obt\u00e9m os&nbsp;<mark>valores atuais<\/mark>&nbsp;de $_GET, $_POST, isto \u00e9, ela pega sempre a fun\u00e7\u00e3o passada pela URL. Se tentar alterar o valor colocando no meio do p\u00e1gina de c\u00f3digo um $_GET[\u2018email] = \u2018outro@email\u2019 n\u00e3o dar\u00e1 certo.&nbsp;<mark>filter_var()<\/mark>&nbsp;n\u00e3o tem essa restri\u00e7\u00e3o.<\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exemplo de Formul\u00e1rio Validado e Sanitizado<\/h2>\n\n\n\n<p>Iremos editar o arquivo index.php e enviar(<em>action=&#8221;index.php&#8221;<\/em>) para ele mesmo os dados do formul\u00e1rio. <\/p>\n\n\n\n<p>Dentro do arquivo index.php  digite essas linhas HTML:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-small-font-size\"><code><pre><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><font color=\"#2A7BDE\">&lt;html&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;body&gt;<\/font>\n\n  <font color=\"#2A7BDE\">&lt;form<\/font> <font color=\"#33C7DE\">action=<\/font><font color=\"#A2734C\">\"index.php\"<\/font> <font color=\"#33C7DE\">method=<\/font><font color=\"#A2734C\">\"get\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"nome\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Nome:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"text\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"nome\"<\/font> <font color=\"#2A7BDE\">\/&gt;<\/font> \n        <font color=\"#2A7BDE\">&lt;br&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"idade\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Idade:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"text\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"idade\"<\/font> <font color=\"#2A7BDE\">\/&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;br&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"email\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Email:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"email\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"email\"<\/font> <font color=\"#2A7BDE\">\/&gt;<\/font>\n\n\n        <font color=\"#2A7BDE\">&lt;button<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"submit\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Enviar<font color=\"#2A7BDE\">&lt;\/button&gt;<\/font>\n  <font color=\"#2A7BDE\">&lt;\/form&gt;<\/font>\n\n<font color=\"#33C7DE\">&lt;?php<\/font>\n       \n<font color=\"#33C7DE\">?&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;\/body&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;\/html&gt;<\/font><\/mark><\/pre><\/code><\/pre>\n\n\n\n<p>Esse \u00e9 o resultado:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/35\/Php_formulario_html02.webp\" alt=\"\" width=\"315\" height=\"178\"\/><\/figure>\n\n\n\n<p>Se quis\u00e9ssemos pegar os valores era s\u00f3 usar <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><em>$_GET[&#8216;nome&#8217;]<\/em> <\/mark>ou <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><em>$_GET[&#8216;idade&#8217;]<\/em> <\/mark>e <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">$_GET[&#8216;email&#8217;]<\/mark><\/em><\/p>\n\n\n\n<p>mas receber\u00edamos os dados sem sanitiz\u00e1-los ou valid\u00e1-los.<\/p>\n\n\n\n<p>Abaixo temos as mesmas linhas de cima, mas acrescentamos as vari\u00e1veis pegando os valores do formul\u00e1rio e sanitizadas. <\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-small-font-size\"><code><pre><font color=\"#2A7BDE\">&lt;<\/font><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><font color=\"#2A7BDE\">html&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;body&gt;<\/font>\n\n  <font color=\"#2A7BDE\">&lt;form<\/font> <font color=\"#33C7DE\">action=<\/font><font color=\"#A2734C\">\"index.php\"<\/font> <font color=\"#33C7DE\">method=<\/font><font color=\"#A2734C\">\"get\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"nome\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Nome:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"text\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"nome\"<\/font> <font color=\"#2A7BDE\">\/&gt;<\/font> \n        <font color=\"#2A7BDE\">&lt;br&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"idade\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Idade:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"text\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"idade\"<\/font> <font color=\"#2A7BDE\">\/&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;br&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"email\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Email:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"email\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"email\"<\/font> <font color=\"#2A7BDE\">\/&gt;<\/font>\n\n\n        <font color=\"#2A7BDE\">&lt;button<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"submit\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Enviar<font color=\"#2A7BDE\">&lt;\/button&gt;<\/font>\n  <font color=\"#2A7BDE\">&lt;\/form&gt;<\/font>\n\n<font color=\"#33C7DE\">&lt;?php<\/font>\n    <font color=\"#2A7BDE\">echo<\/font> <font color=\"#F66151\">$nome<\/font> =  <font color=\"#33C7DE\">filter_var<\/font>(<font color=\"#F66151\">$_GET<\/font>&#91;<font color=\"#A2734C\">'nome'<\/font>], FILTER_SANITIZE_STRING) . <font color=\"#A2734C\">\"&lt;br&gt;\"<\/font> ;     \n    <font color=\"#2A7BDE\">echo<\/font> <font color=\"#F66151\">$idade<\/font> = <font color=\"#33C7DE\">filter_var<\/font>(<font color=\"#F66151\">$_GET<\/font>&#91;<font color=\"#A2734C\">'idade'<\/font>], FILTER_SANITIZE_NUMBER_INT) . <font color=\"#A2734C\">\"&lt;br&gt;\"<\/font>; \n    <font color=\"#2A7BDE\">echo<\/font> <font color=\"#F66151\">$email<\/font> = <font color=\"#33C7DE\">filter_var<\/font>(<font color=\"#F66151\">$_GET<\/font>&#91;<font color=\"#A2734C\">'email'<\/font>], FILTER_SANITIZE_EMAIL);    \n    \n<font color=\"#33C7DE\">?&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;\/body&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;\/html&gt;<\/font><\/mark><\/pre><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/categoriaoutros.com.br\/?p=4299#:~:text=padr%C3%A3o%20como%200-,FILTER_SANITIZE_STRING,-%E2%80%9Cstring%E2%80%9D\">FILTER_SANITIZE_STRING<\/a> sanitiza strings removendo tags e codificando aspas duplas e simples no estilo HTML, opcionalmente remove ou codifica caracteres HTML especiais.&nbsp; <\/li><li><a href=\"https:\/\/categoriaoutros.com.br\/?p=4299#:~:text=.%2CeE.-,FILTER_SANITIZE_NUMBER_INT,-%E2%80%9Cnumber_int%E2%80%9D\">FILTER_SANITIZE_NUMBER_INT<\/a>  remove todos os caracteres, exceto os d\u00edgitos, sinal de mais e menos.<\/li><li><a href=\"https:\/\/categoriaoutros.com.br\/?p=4299#:~:text=Descri%C3%A7%C3%A3o-,FILTER_SANITIZE_EMAIL,-%E2%80%9Cemail%E2%80%9D\">FILTER_SANITIZE_EMAIL<\/a> remova todos os caracteres, exceto letras, d\u00edgitos e&nbsp;<code>!#$%&amp;'*+-=?^_`{|}~@.[]<\/code>.<\/li><\/ul>\n\n\n\n<p>Para conhecer mais filtros <a href=\"https:\/\/categoriaoutros.com.br\/?p=4299\">clique aqui<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Usando <a href=\"https:\/\/categoriaoutros.com.br\/?p=4274#:~:text=INPUT_SERVER%20ou%20INPUT_ENV.-,A%20fun%C3%A7%C3%A3o%20isset(),-retorna%20true%20se\">isset()<\/a><\/h2>\n\n\n\n<p><mark style=\"background-color:#7bdcb5\" class=\"has-inline-color\"><strong>AVISO:<\/strong> <\/mark> <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\"><strong>Notice<\/strong>: Undefined index: idade in\u00a0<strong>\/var\/www\/html\/meusite\/index.php<\/strong>\u00a0on line<strong>&#8230;<\/strong><\/mark><\/p>\n\n\n\n<p>Se iniciar a p\u00e1gina ver\u00e1 avisos de vari\u00e1veis n\u00e3o definidas:<\/p>\n\n\n\n<p>Podemos tratar essa situa\u00e7\u00e3o de duas formas, usando filter_input() ao inv\u00e9s de filter_var:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-small-font-size\"><code>.....\necho $nome =  <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">filter_input<\/mark>(<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">INPUT_GET<\/mark>, 'nome', FILTER_SANITIZE_STRING<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">)<\/mark> . \"&lt;br&gt;\"  ; \n.....<\/code><\/pre>\n\n\n\n<p>ou usando if com <a href=\"https:\/\/categoriaoutros.com.br\/?p=4274\">isset()<\/a> ou <a href=\"https:\/\/categoriaoutros.com.br\/?p=4274\">filter_has_var()<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-small-font-size\"><code>.....\n if (<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">isset(<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">$_GET&#91;'idade']<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">)<\/mark>) {\n        echo $idade = filter_var($_GET&#91;'idade'], FILTER_SANITIZE_NUMBER_INT) . \"&lt;br&gt;\";  \n    } \n.....<\/code><\/pre>\n\n\n\n<p>Vamos usar essa segunda forma com if e isset() <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Usando <a href=\"https:\/\/categoriaoutros.com.br\/?p=4319\">trim()<\/a><\/h2>\n\n\n\n<p>Nosso formul\u00e1rio est\u00e1 quase indo bem, mas a vari\u00e1vel gravar\u00e1 espa\u00e7o em branco ao in\u00edcio ou final. \u00c9 bom tratarmos para ele n\u00e3o pegar esses espa\u00e7os em branco. Para isso usamos trim(), dessa forma:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-small-font-size\"><code><pre><font color=\"#2A7BDE\">&lt;<\/font><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><font color=\"#2A7BDE\">html&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;body&gt;<\/font>\n\n  <font color=\"#2A7BDE\">&lt;form<\/font> <font color=\"#33C7DE\">action=<\/font><font color=\"#A2734C\">\"index.php\"<\/font> <font color=\"#33C7DE\">method=<\/font><font color=\"#A2734C\">\"get\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"nome\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Nome:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"text\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"nome\"<\/font> <font color=\"#2A7BDE\">\/&gt;<\/font> \n        <font color=\"#2A7BDE\">&lt;br&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"idade\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Idade:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"text\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"idade\"<\/font> <font color=\"#2A7BDE\">\/&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;br&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"email\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Email:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"email\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"email\"<\/font> <font color=\"#2A7BDE\">\/&gt;<\/font>\n\n\n        <font color=\"#2A7BDE\">&lt;button<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"submit\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Enviar<font color=\"#2A7BDE\">&lt;\/button&gt;<\/font>\n  <font color=\"#2A7BDE\">&lt;\/form&gt;<\/font>\n\n<font color=\"#33C7DE\">&lt;?php<\/font>    <\/mark><\/pre>        if ( isset($_GET&#91;'nome']) ) {\n        echo $nome =  filter_var(<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><strong>trim(<\/strong><\/mark>$_GET&#91;'nome']<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><strong>)<\/strong><\/mark>, FILTER_SANITIZE_STRING) . \"&lt;br&gt;\"  ;       \n        }\n\n        if ( isset($_GET&#91;'idade']) ) {\n        echo $idade = filter_var(<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><strong>trim(<\/strong><\/mark>$_GET&#91;'idade']<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><strong>)<\/strong><\/mark>, FILTER_SANITIZE_NUMBER_INT) . \"&lt;br&gt;\";    \n        } \n\n        if ( isset($_GET&#91;'email']) ) {\n        echo $email = filter_var(<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><strong>trim(<\/strong><\/mark>$_GET&#91;'email']<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><strong>)<\/strong><\/mark>, FILTER_SANITIZE_EMAIL);  \n        }<pre><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><font color=\"#33C7DE\">?&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;\/body&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;\/html&gt;<\/font><\/mark><\/pre><\/code><\/pre>\n\n\n\n<p> <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Usando empty() e required<\/h2>\n\n\n\n<p><strong>empty<\/strong> que dizer vazio em portugu\u00eas.<\/p>\n\n\n\n<p><strong>required<\/strong> que dizer requerido, necess\u00e1rio.<\/p>\n\n\n\n<p>O usu\u00e1rio pode clicar em enviar com os campos vazios e isso n\u00e3o \u00e9 bom! Iremos usar a fun\u00e7\u00e3o empty() do php e a tag required do html<\/p>\n\n\n\n<p><a href=\"https:\/\/categoriaoutros.com.br\/?p=4204#:~:text=name%3D%22email%22-,required%3D%22required%22,-\/%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22submit\">Clique aqui<\/a> para ver artigo que falamos sobre a fun\u00e7\u00e3o <a href=\"https:\/\/categoriaoutros.com.br\/?p=4204#:~:text=Alternativa%20%C3%A0%20Fun%C3%A7%C3%A3o%20empty()\">empty()<\/a> e a tag html chamada <a href=\"https:\/\/categoriaoutros.com.br\/?p=4204#:~:text=name%3D%22email%22-,required%3D%22required%22,-\/%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22submit\">required<\/a>.<\/p>\n\n\n\n<p>Insira &#8220;<strong>required<\/strong>&#8221; conforme texto alaranjado abaixo no html:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-small-font-size\"><code><pre><font color=\"#2A7BDE\">&lt;<\/font><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><font color=\"#2A7BDE\">html&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;body&gt;<\/font>\n\n  <font color=\"#2A7BDE\">&lt;form<\/font> <font color=\"#33C7DE\">action=<\/font><font color=\"#A2734C\">\"index.php\"<\/font> <font color=\"#33C7DE\">method=<\/font><font color=\"#A2734C\">\"get\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"nome\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Nome:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"text\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"nome\"<\/font> <\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><strong>required<\/strong><\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">  <font color=\"#2A7BDE\">\/&gt;<\/font> \n        <font color=\"#2A7BDE\">&lt;br&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"idade\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Idade:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"text\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"idade\"<\/font> <\/mark><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">required<\/mark><\/strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"> <font color=\"#2A7BDE\">\/&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;br&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"email\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Email:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"email\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"email\"<\/font> <\/mark><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">required<\/mark><\/strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"> <font color=\"#2A7BDE\">\/&gt;<\/font>\n\n\n        <font color=\"#2A7BDE\">&lt;button<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"submit\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Enviar<font color=\"#2A7BDE\">&lt;\/button&gt;<\/font>\n  <font color=\"#2A7BDE\">&lt;\/form&gt;<\/font>\n\n<font color=\"#33C7DE\">&lt;?php<\/font>    <\/mark><\/pre>        if ( isset($_GET&#91;'nome']) ) {\n        echo $nome =  filter_var(trim($_GET&#91;'nome']), FILTER_SANITIZE_STRING) . \"&lt;br&gt;\"  ;       \n        }\n\n        if ( isset($_GET&#91;'idade']) ) {\n        echo $idade = filter_var(trim($_GET&#91;'idade']), FILTER_SANITIZE_NUMBER_INT) . \"&lt;br&gt;\";    \n        } \n\n        if ( isset($_GET&#91;'email']) ) {\n        echo $email = filter_var(trim($_GET&#91;'email']), FILTER_SANITIZE_EMAIL);  \n        }<pre><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><font color=\"#33C7DE\">?&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;\/body&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;\/html&gt;<\/font><\/mark><\/pre><\/code><\/pre>\n\n\n\n<p>Iremos inverter o sentido do empty() usando exclama\u00e7\u00e3o, assim: <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">!empty()<\/mark><\/em>. Dessa forma ele ir\u00e1 passar somente se a vari\u00e1vel n\u00e3o estiver  vazia.<\/p>\n\n\n\n<p>Na parte do php altere acrescentando um if dentro do outro: <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">if( !empty($_GET[&#8216;nome&#8217;]) ) {<\/mark>&#8230;.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-small-font-size\"><code><pre><font color=\"#2A7BDE\">&lt;<\/font><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><font color=\"#2A7BDE\">html&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;body&gt;<\/font>\n\n  <font color=\"#2A7BDE\">&lt;form<\/font> <font color=\"#33C7DE\">action=<\/font><font color=\"#A2734C\">\"index.php\"<\/font> <font color=\"#33C7DE\">method=<\/font><font color=\"#A2734C\">\"get\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"nome\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Nome:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"text\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"nome\"<\/font> <\/mark><strong>required<\/strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">  <font color=\"#2A7BDE\">\/&gt;<\/font> \n        <font color=\"#2A7BDE\">&lt;br&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"idade\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Idade:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"text\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"idade\"<\/font> <\/mark><strong>required<\/strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"> <font color=\"#2A7BDE\">\/&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;br&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;label<\/font> <font color=\"#33C7DE\">for=<\/font><font color=\"#A2734C\">\"email\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Email:<font color=\"#2A7BDE\">&lt;\/label&gt;<\/font>\n        <font color=\"#2A7BDE\">&lt;input<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"email\"<\/font> <font color=\"#33C7DE\">name=<\/font><font color=\"#A2734C\">\"email\"<\/font> <\/mark><strong>required<\/strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"> <font color=\"#2A7BDE\">\/&gt;<\/font>\n\n\n        <font color=\"#2A7BDE\">&lt;button<\/font> <font color=\"#33C7DE\">type=<\/font><font color=\"#A2734C\">\"submit\"<\/font><font color=\"#2A7BDE\">&gt;<\/font>Enviar<font color=\"#2A7BDE\">&lt;\/button&gt;<\/font>\n  <font color=\"#2A7BDE\">&lt;\/form&gt;<\/font>\n\n<font color=\"#33C7DE\">&lt;?php<\/font>    <\/mark><\/pre>        if ( isset($_GET&#91;'nome'])   ) {\n                <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">if( !empty($_GET&#91;'nome']) ) {<\/mark>  \n        echo $nome =  filter_var(trim($_GET&#91;'nome']), FILTER_SANITIZE_STRING) . \"&lt;br&gt;\"  ;       \n                <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">}<\/mark>\n        }\n\n        if ( isset($_GET&#91;'idade']) ) {\n               <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"> if( !empty($_GET&#91;'idade']) ) {<\/mark>\n        echo $idade = filter_var(trim($_GET&#91;'idade']), FILTER_SANITIZE_NUMBER_INT) . \"&lt;br&gt;\";    \n                <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">}<\/mark>\n        } \n\n        if ( isset($_GET&#91;'email']) ) {\n                <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">if( !empty($_GET&#91;'email']) ) {<\/mark>\n        echo $email = filter_var(trim($_GET&#91;'email']), FILTER_SANITIZE_EMAIL);  \n               <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"> }<\/mark>\n        }\n\n<pre><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><font color=\"#33C7DE\">?&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;\/body&gt;<\/font>\n\n<font color=\"#2A7BDE\">&lt;\/html&gt;<\/font><\/mark><\/pre><\/code><\/pre>\n\n\n\n<p>Acima criamos uma camada de prote\u00e7\u00e3o dentro do HTML com required, outras duas camas dentro do nosso PHP usando isset() e empty().<\/p>\n\n\n\n<p>Usamos if aninhado, isto \u00e9, um if dentro do outro.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p>Vimos aqui tratar, analisando, validando e sanitizando os dados recebidos de um fomrul\u00e1rio.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Na aula 32 vimos como separar o c\u00f3digo em diversas p\u00e1ginas para facilitar o entendimento. Mas aqui iremos continuar a fazer tudo em uma \u00fanica p\u00e1gina para evitar confus\u00e3o ou complexidade. Tipos de Valida\u00e7\u00f5es Existem dois tipos de valida\u00e7\u00f5es:&nbsp;client-side e server-side. client-side ou &#8220;do lado do cliente&#8221;: realizado nos navegadores web dos usu\u00e1rios. Podemos usar&#8230;<\/p>\n<p class=\"more-link-wrap\"><a href=\"https:\/\/categoriaoutros.com.br\/?p=4313\" class=\"more-link\">Read More<span class=\"screen-reader-text\"> &ldquo;PHP &#8211; Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio&rdquo;<\/span> &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":3776,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[82,16,1622],"tags":[1623,1854,1856,1855],"class_list":["post-4313","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cursos","category-informatica-dicas","category-php","tag-php","tag-sanitizar","tag-sanitizar-formulario","tag-validar-formulario"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP - Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio - Categoria Outros<\/title>\n<meta name=\"description\" content=\"Sanitiza\u00e7\u00e3o \u00e9 um termo que significa, mais ou menos, higienizar. Qualquer valor, vari\u00e1vel, recebida externamente, de outra p\u00e1gina, deve ser higienizada, pois pode haver c\u00f3digo malicioso que danificar\u00e1 nosso sistema PHP.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/categoriaoutros.com.br\/?p=4313\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP - Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio - Categoria Outros\" \/>\n<meta property=\"og:description\" content=\"Sanitiza\u00e7\u00e3o \u00e9 um termo que significa, mais ou menos, higienizar. Qualquer valor, vari\u00e1vel, recebida externamente, de outra p\u00e1gina, deve ser higienizada, pois pode haver c\u00f3digo malicioso que danificar\u00e1 nosso sistema PHP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/categoriaoutros.com.br\/?p=4313\" \/>\n<meta property=\"og:site_name\" content=\"Categoria Outros\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/categoriaoutros\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-02T22:32:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-14T18:06:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2022\/06\/php_logo.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"184\" \/>\n\t<meta property=\"og:image:height\" content=\"184\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Categoria: Outros\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CategoriaOutros\" \/>\n<meta name=\"twitter:site\" content=\"@CategoriaOutros\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Categoria: Outros\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=4313#article\",\"isPartOf\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=4313\"},\"author\":{\"name\":\"Categoria: Outros\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/ba0f432708449436912bd6736864bb40\"},\"headline\":\"PHP &#8211; Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio\",\"datePublished\":\"2022-08-02T22:32:58+00:00\",\"dateModified\":\"2022-09-14T18:06:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=4313\"},\"wordCount\":1253,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/#organization\"},\"keywords\":[\"php\",\"sanitizar\",\"sanitizar formul\u00e1rio\",\"validar formul\u00e1rio\"],\"articleSection\":[\"Cursos\",\"Inform\u00e1tica\",\"PHP\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/categoriaoutros.com.br\/?p=4313#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=4313\",\"url\":\"https:\/\/categoriaoutros.com.br\/?p=4313\",\"name\":\"PHP - Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio - Categoria Outros\",\"isPartOf\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/#website\"},\"datePublished\":\"2022-08-02T22:32:58+00:00\",\"dateModified\":\"2022-09-14T18:06:41+00:00\",\"description\":\"Sanitiza\u00e7\u00e3o \u00e9 um termo que significa, mais ou menos, higienizar. Qualquer valor, vari\u00e1vel, recebida externamente, de outra p\u00e1gina, deve ser higienizada, pois pode haver c\u00f3digo malicioso que danificar\u00e1 nosso sistema PHP.\",\"breadcrumb\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=4313#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/categoriaoutros.com.br\/?p=4313\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=4313#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/categoriaoutros.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP &#8211; Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#website\",\"url\":\"https:\/\/categoriaoutros.com.br\/\",\"name\":\"Categoria Outros\",\"description\":\"Assuntos Diversos\",\"publisher\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/categoriaoutros.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#organization\",\"name\":\"Categoria Outros\",\"alternateName\":\"Categoria Outros\",\"url\":\"https:\/\/categoriaoutros.com.br\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2023\/08\/categoriaoutros-logo.jpg\",\"contentUrl\":\"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2023\/08\/categoriaoutros-logo.jpg\",\"width\":400,\"height\":400,\"caption\":\"Categoria Outros\"},\"image\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/categoriaoutros\",\"https:\/\/twitter.com\/CategoriaOutros\",\"https:\/\/br.pinterest.com\/CategoriaOutros\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/ba0f432708449436912bd6736864bb40\",\"name\":\"Categoria: Outros\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ed97775f0ab50750ed638ed3417ea85e19ced2c648da167a108e393ae5fd9e33?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ed97775f0ab50750ed638ed3417ea85e19ced2c648da167a108e393ae5fd9e33?s=96&d=mm&r=g\",\"caption\":\"Categoria: Outros\"},\"sameAs\":[\"http:\/\/categoriaoutros.com.br\"],\"url\":\"https:\/\/categoriaoutros.com.br\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PHP - Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio - Categoria Outros","description":"Sanitiza\u00e7\u00e3o \u00e9 um termo que significa, mais ou menos, higienizar. Qualquer valor, vari\u00e1vel, recebida externamente, de outra p\u00e1gina, deve ser higienizada, pois pode haver c\u00f3digo malicioso que danificar\u00e1 nosso sistema PHP.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/categoriaoutros.com.br\/?p=4313","og_locale":"pt_BR","og_type":"article","og_title":"PHP - Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio - Categoria Outros","og_description":"Sanitiza\u00e7\u00e3o \u00e9 um termo que significa, mais ou menos, higienizar. Qualquer valor, vari\u00e1vel, recebida externamente, de outra p\u00e1gina, deve ser higienizada, pois pode haver c\u00f3digo malicioso que danificar\u00e1 nosso sistema PHP.","og_url":"https:\/\/categoriaoutros.com.br\/?p=4313","og_site_name":"Categoria Outros","article_publisher":"https:\/\/www.facebook.com\/categoriaoutros","article_published_time":"2022-08-02T22:32:58+00:00","article_modified_time":"2022-09-14T18:06:41+00:00","og_image":[{"width":184,"height":184,"url":"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2022\/06\/php_logo.webp","type":"image\/webp"}],"author":"Categoria: Outros","twitter_card":"summary_large_image","twitter_creator":"@CategoriaOutros","twitter_site":"@CategoriaOutros","twitter_misc":{"Escrito por":"Categoria: Outros","Est. tempo de leitura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/categoriaoutros.com.br\/?p=4313#article","isPartOf":{"@id":"https:\/\/categoriaoutros.com.br\/?p=4313"},"author":{"name":"Categoria: Outros","@id":"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/ba0f432708449436912bd6736864bb40"},"headline":"PHP &#8211; Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio","datePublished":"2022-08-02T22:32:58+00:00","dateModified":"2022-09-14T18:06:41+00:00","mainEntityOfPage":{"@id":"https:\/\/categoriaoutros.com.br\/?p=4313"},"wordCount":1253,"commentCount":2,"publisher":{"@id":"https:\/\/categoriaoutros.com.br\/#organization"},"keywords":["php","sanitizar","sanitizar formul\u00e1rio","validar formul\u00e1rio"],"articleSection":["Cursos","Inform\u00e1tica","PHP"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/categoriaoutros.com.br\/?p=4313#respond"]}]},{"@type":"WebPage","@id":"https:\/\/categoriaoutros.com.br\/?p=4313","url":"https:\/\/categoriaoutros.com.br\/?p=4313","name":"PHP - Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio - Categoria Outros","isPartOf":{"@id":"https:\/\/categoriaoutros.com.br\/#website"},"datePublished":"2022-08-02T22:32:58+00:00","dateModified":"2022-09-14T18:06:41+00:00","description":"Sanitiza\u00e7\u00e3o \u00e9 um termo que significa, mais ou menos, higienizar. Qualquer valor, vari\u00e1vel, recebida externamente, de outra p\u00e1gina, deve ser higienizada, pois pode haver c\u00f3digo malicioso que danificar\u00e1 nosso sistema PHP.","breadcrumb":{"@id":"https:\/\/categoriaoutros.com.br\/?p=4313#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/categoriaoutros.com.br\/?p=4313"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/categoriaoutros.com.br\/?p=4313#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/categoriaoutros.com.br\/"},{"@type":"ListItem","position":2,"name":"PHP &#8211; Aula 33: Valida\u00e7\u00e3o e Sanitiza\u00e7\u00e3o de Formul\u00e1rio"}]},{"@type":"WebSite","@id":"https:\/\/categoriaoutros.com.br\/#website","url":"https:\/\/categoriaoutros.com.br\/","name":"Categoria Outros","description":"Assuntos Diversos","publisher":{"@id":"https:\/\/categoriaoutros.com.br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/categoriaoutros.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/categoriaoutros.com.br\/#organization","name":"Categoria Outros","alternateName":"Categoria Outros","url":"https:\/\/categoriaoutros.com.br\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/categoriaoutros.com.br\/#\/schema\/logo\/image\/","url":"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2023\/08\/categoriaoutros-logo.jpg","contentUrl":"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2023\/08\/categoriaoutros-logo.jpg","width":400,"height":400,"caption":"Categoria Outros"},"image":{"@id":"https:\/\/categoriaoutros.com.br\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/categoriaoutros","https:\/\/twitter.com\/CategoriaOutros","https:\/\/br.pinterest.com\/CategoriaOutros\/"]},{"@type":"Person","@id":"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/ba0f432708449436912bd6736864bb40","name":"Categoria: Outros","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ed97775f0ab50750ed638ed3417ea85e19ced2c648da167a108e393ae5fd9e33?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ed97775f0ab50750ed638ed3417ea85e19ced2c648da167a108e393ae5fd9e33?s=96&d=mm&r=g","caption":"Categoria: Outros"},"sameAs":["http:\/\/categoriaoutros.com.br"],"url":"https:\/\/categoriaoutros.com.br\/?author=1"}]}},"jetpack_featured_media_url":"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2022\/06\/php_logo.webp","_links":{"self":[{"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4313"}],"version-history":[{"count":21,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4313\/revisions"}],"predecessor-version":[{"id":5432,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4313\/revisions\/5432"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/media\/3776"}],"wp:attachment":[{"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}