{"id":1046,"date":"2024-05-20T20:20:15","date_gmt":"2024-05-20T23:20:15","guid":{"rendered":"https:\/\/thiagorossi.com.br\/blog\/?p=1046"},"modified":"2025-12-02T18:34:29","modified_gmt":"2025-12-02T21:34:29","slug":"formulario-no-php","status":"publish","type":"post","link":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/","title":{"rendered":"Formul\u00e1rio no PHP"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Formul\u00e1rio no PHP:<\/strong> Os <strong>formul\u00e1rios<\/strong> s\u00e3o a principal interface de intera\u00e7\u00e3o do usu\u00e1rio com uma aplica\u00e7\u00e3o web, permitindo a coleta de dados que ser\u00e3o processados pelo servidor. No <strong>PHP<\/strong>, o processamento de formul\u00e1rios envolve receber os dados enviados via <strong>HTML<\/strong> e trat\u00e1-los no lado do servidor com seguran\u00e7a e valida\u00e7\u00e3o.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">1. \ud83c\udfd7\ufe0f Estrutura B\u00e1sica do Formul\u00e1rio HTML<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Um formul\u00e1rio \u00e9 definido pela <em>tag<\/em> <code>&lt;form&gt;<\/code> e requer dois atributos cruciais para a comunica\u00e7\u00e3o HTTP:<\/p>\n\n\n\n<figure class=\"wp-block-table has-medium-font-size\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Atributo<\/strong><\/td><td><strong>Fun\u00e7\u00e3o<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong><code>action<\/code><\/strong><\/td><td>Define o URL ou arquivo PHP que <strong>receber\u00e1<\/strong> e processar\u00e1 os dados.<\/td><\/tr><tr><td><strong><code>method<\/code><\/strong><\/td><td>Especifica o <strong>m\u00e9todo HTTP<\/strong> (GET ou POST) usado para enviar os dados.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo HTML<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">HTML<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;form action=\"processa_formulario.php\" method=\"post\"&gt;\n    &lt;label for=\"nome\"&gt;Nome:&lt;\/label&gt;\n    &lt;input type=\"text\" id=\"nome\" name=\"nome\" required&gt;\n    \n    &lt;label for=\"email\"&gt;Email:&lt;\/label&gt;\n    &lt;input type=\"email\" id=\"email\" name=\"email\" required&gt;\n    \n    &lt;button type=\"submit\"&gt;Enviar Dados&lt;\/button&gt;\n&lt;\/form&gt;\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">2. \u2195\ufe0f Enviando e Recebendo Dados: GET vs. POST<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O PHP usa as superglobais <strong><code>$_GET<\/code><\/strong> e <strong><code>$_POST<\/code><\/strong> para acessar os dados enviados do formul\u00e1rio, dependendo do m\u00e9todo HTTP utilizado.<\/p>\n\n\n\n<figure class=\"wp-block-table has-medium-font-size\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>M\u00e9todo<\/strong><\/td><td><strong>$_GET<\/strong><\/td><td><strong>$_POST<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Como Envia<\/strong><\/td><td>Dados anexados \u00e0 <strong>URL<\/strong> (<em>Query String<\/em>).<\/td><td>Dados enviados no <strong>corpo<\/strong> da requisi\u00e7\u00e3o HTTP.<\/td><\/tr><tr><td><strong>Visibilidade<\/strong><\/td><td>Alta (vis\u00edvel no hist\u00f3rico e logs do servidor).<\/td><td>Baixa (n\u00e3o vis\u00edvel na URL).<\/td><\/tr><tr><td><strong>Limite de Dados<\/strong><\/td><td>Baixo (limitado pelo tamanho m\u00e1ximo da URL).<\/td><td>Alto (pode enviar grandes volumes, ex: <em>uploads<\/em> de arquivo).<\/td><\/tr><tr><td><strong>Uso Ideal<\/strong><\/td><td>Busca, filtros ou links compartilh\u00e1veis.<\/td><td>Login, cadastro e dados confidenciais.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Recebendo Dados no PHP<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Se o formul\u00e1rio usar <code>method=\"post\"<\/code>, os dados s\u00e3o acessados via <code>$_POST<\/code>:<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ processa.php\nif ($_SERVER&#91;'REQUEST_METHOD'] === 'POST') {\n    $nome = $_POST&#91;'nome'];\n    $email = $_POST&#91;'email'];\n    \n    echo \"Nome recebido: \" . $nome;\n    echo \"Email recebido: \" . $email;\n}\na<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">3. \ud83d\udee1\ufe0f Valida\u00e7\u00e3o e Seguran\u00e7a de Dados<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A seguran\u00e7a come\u00e7a no servidor. <strong>Nunca confie<\/strong> nos dados recebidos do cliente. O tratamento seguro envolve tr\u00eas etapas principais:<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">A. Valida\u00e7\u00e3o (Garantindo a Integridade)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Verificar se os dados s\u00e3o <em>v\u00e1lidos<\/em> (preenchidos, no formato correto, etc.).<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\/\/ Exemplo de valida\u00e7\u00e3o simples\nif (empty($_POST&#91;'nome']) || empty($_POST&#91;'email'])) {\n    die(\"Erro: Por favor, preencha todos os campos.\");\n}\n\n\/\/ 1. Valida\u00e7\u00e3o de formato de Email\n$email_input = $_POST&#91;'email'];\nif (!filter_var($email_input, FILTER_VALIDATE_EMAIL)) {\n    die(\"Erro: Email inv\u00e1lido.\");\n}\n\n\/\/ 2. Valida\u00e7\u00e3o para garantir que \u00e9 um n\u00famero (e convertendo o tipo)\n$idade_input = filter_var($_POST&#91;'idade'], FILTER_SANITIZE_NUMBER_INT);\nif (!is_numeric($idade_input) || $idade_input &lt; 18) {\n    die(\"Erro: Idade inv\u00e1lida.\");\n}\n?&gt;\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">B. Sanitiza\u00e7\u00e3o (Preven\u00e7\u00e3o de XSS)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Sanitiza\u00e7\u00e3o<\/strong> (ou <strong>Escaping<\/strong>) protege contra ataques <strong>XSS (Cross-Site Scripting)<\/strong>. Qualquer dado de usu\u00e1rio que ser\u00e1 renderizado de volta em uma p\u00e1gina HTML deve ter caracteres especiais (como <code>&lt;<\/code>, <code>&gt;<\/code>) convertidos para suas entidades HTML.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Fun\u00e7\u00e3o:<\/strong> <strong><code>htmlspecialchars()<\/code><\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\/\/ Exemplo de prote\u00e7\u00e3o contra XSS (Escaping de sa\u00edda)\n$nome_seguro = htmlspecialchars($_POST&#91;'nome'], ENT_QUOTES, 'UTF-8');\necho \"Obrigado, \" . $nome_seguro; \/\/ Renderiza 'John &lt;script&gt;' como 'John &amp;lt;script&amp;gt;'\n?&gt;\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">C. Prote\u00e7\u00e3o contra CSRF<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para prevenir <strong>CSRF (Cross-Site Request Forgery)<\/strong>, utilize <strong>Tokens CSRF<\/strong>. O <em>token<\/em> \u00e9 uma <em>string<\/em> secreta gerada na sess\u00e3o do usu\u00e1rio e inclu\u00edda como um campo oculto no formul\u00e1rio.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Gera\u00e7\u00e3o:<\/strong> Gere o <em>token<\/em> e armazene-o na sess\u00e3o (<code>$_SESSION<\/code>).<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Inclus\u00e3o:<\/strong> Coloque-o em um campo oculto no HTML.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Verifica\u00e7\u00e3o:<\/strong> Ao processar o formul\u00e1rio, compare o <em>token<\/em> recebido via <code>$_POST<\/code> com o <em>token<\/em> na <code>$_SESSION<\/code>. Se n\u00e3o coincidirem, a requisi\u00e7\u00e3o \u00e9 inv\u00e1lida.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">4. \ud83d\uddc3\ufe0f Processamento de Dados (Exemplo PDO)<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Ap\u00f3s a valida\u00e7\u00e3o e sanitiza\u00e7\u00e3o, o processamento pode envolver armazenamento de dados em um banco. O uso de <strong>Prepared Statements<\/strong> \u00e9 fundamental para prevenir <strong>Inje\u00e7\u00e3o SQL<\/strong>.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\/\/ Assume que $nome e $email foram validados.\n\n\/\/ Conex\u00e3o e configura\u00e7\u00e3o PDO\n$pdo = new PDO('mysql:host=localhost;dbname=meu_banco', 'usuario', 'senha');\n$pdo-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); \n\n\/\/ Utilizando Prepared Statements (prote\u00e7\u00e3o contra Inje\u00e7\u00e3o SQL)\n$stmt = $pdo-&gt;prepare(\"\n  INSERT INTO usuarios (nome, email) \n  VALUES (:nome, :email)\n\");\n\n\/\/ Bind dos par\u00e2metros (os dados s\u00e3o enviados separadamente do comando SQL)\n$stmt-&gt;bindParam(':nome', $nome);\n$stmt-&gt;bindParam(':email', $email);\n$stmt-&gt;execute();\n\necho \"Cadastro realizado com sucesso!\";\n\n\/\/ Redirecionamento ap\u00f3s sucesso (Melhor Pr\u00e1tica PRG: Post-Redirect-Get)\nheader('Location: obrigado.php');\nexit;\n?&gt;\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">5. \ud83d\udce7 Outras A\u00e7\u00f5es Comuns<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Envio de E-mail:<\/strong> A fun\u00e7\u00e3o nativa <strong><code>mail()<\/code><\/strong> pode ser usada para enviar notifica\u00e7\u00f5es. Para aplica\u00e7\u00f5es profissionais, use uma biblioteca como <strong>PHPMailer<\/strong> para lidar com autentica\u00e7\u00e3o SMTP e erros.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Redirecionamento:<\/strong> O uso de <strong><code>header('Location: url')<\/code><\/strong> seguido de <strong><code>exit;<\/code><\/strong> \u00e9 a forma padr\u00e3o de enviar o usu\u00e1rio para outra p\u00e1gina.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">\u2705 Conclus\u00e3o Formul\u00e1rio no PHP<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Formul\u00e1rio no PHP<\/strong>: Formul\u00e1rios s\u00e3o a porta de entrada de dados para sua aplica\u00e7\u00e3o, e seu processamento seguro \u00e9 uma prioridade. Ao utilizar o m\u00e9todo <strong>POST<\/strong> para dados sens\u00edveis, validar as entradas rigorosamente, <strong>sanitizar a sa\u00edda<\/strong> com <strong><code>htmlspecialchars()<\/code><\/strong> para prevenir XSS e empregar <strong>Prepared Statements<\/strong> (PDO\/MySQLi) para evitar Inje\u00e7\u00e3o SQL, voc\u00ea constr\u00f3i formul\u00e1rios robustos, funcionais e seguros.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Toda jornada tem um in\u00edcio, e o in\u00edcio para se tornar um desenvolvedor back-end \u00e9 dominar as seguintes tecnologias, que voc\u00ea encontra aqui mesmo:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/sql\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp\" alt=\"SQL\" class=\"wp-image-942\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">SQL<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/php\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png\" alt=\"Capa Curso PHP\" class=\"wp-image-2835\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP-300x169.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">PHP<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/laravel\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp\" alt=\"Laravel\" class=\"wp-image-1642\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">Laravel<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">E se voc\u00ea gosta do nosso conte\u00fado, n\u00e3o deixe de contribuir adquirindo os servi\u00e7os e produtos dos nossos apoiadores e empresas que somos associados:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/hostinger.com.br\/?REFERRALCODE=1THIAGO62\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/03\/hostinger.png\" alt=\"Hospedagem Hostinger\" class=\"wp-image-92\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNDYlc\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/ofertas-amazon.webp\" alt=\"Ofertas Amazon\" class=\"wp-image-1308\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNKmt0\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/amazonprime.webp\" alt=\"Amazon Prime\" class=\"wp-image-1307\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>Formul\u00e1rio no PHP: Os formul\u00e1rios s\u00e3o a principal interface de intera\u00e7\u00e3o do usu\u00e1rio com uma&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2835,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-1046","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","wpcat-11-id"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Formul\u00e1rio no PHP - BLOG THIAGO ROSSI<\/title>\n<meta name=\"description\" content=\"Formul\u00e1rio no PHP:Neste artigo, veremos em detalhes como criar e processar formul\u00e1rios em PHP. Abordaremos desde a estrutura b\u00e1sica de um...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Formul\u00e1rio no PHP - BLOG THIAGO ROSSI\" \/>\n<meta property=\"og:description\" content=\"Formul\u00e1rio no PHP:Neste artigo, veremos em detalhes como criar e processar formul\u00e1rios em PHP. Abordaremos desde a estrutura b\u00e1sica de um...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/\" \/>\n<meta property=\"og:site_name\" content=\"BLOG THIAGO ROSSI\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-20T23:20:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-02T21:34:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png\" \/>\n\t<meta property=\"og:image:width\" content=\"758\" \/>\n\t<meta property=\"og:image:height\" content=\"426\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Thiago Rossi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thiago Rossi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/\"},\"author\":{\"name\":\"Thiago Rossi\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\"},\"headline\":\"Formul\u00e1rio no PHP\",\"datePublished\":\"2024-05-20T23:20:15+00:00\",\"dateModified\":\"2025-12-02T21:34:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/\"},\"wordCount\":622,\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Capa-PHP.png\",\"articleSection\":[\"PHP\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/\",\"name\":\"Formul\u00e1rio no PHP - BLOG THIAGO ROSSI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Capa-PHP.png\",\"datePublished\":\"2024-05-20T23:20:15+00:00\",\"dateModified\":\"2025-12-02T21:34:29+00:00\",\"description\":\"Formul\u00e1rio no PHP:Neste artigo, veremos em detalhes como criar e processar formul\u00e1rios em PHP. Abordaremos desde a estrutura b\u00e1sica de um...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Capa-PHP.png\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Capa-PHP.png\",\"width\":758,\"height\":426,\"caption\":\"PHP\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/formulario-no-php\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Formul\u00e1rio no PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"name\":\"THIAGO ROSSI\",\"description\":\"Mais de 20 anos de experi\u00eancia no mercado de TI!\",\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"alternateName\":\"TR | CURSO WEB DEV\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\",\"name\":\"THIAGO ROSSI\",\"alternateName\":\"TR | CURSO WEB DEV\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"width\":300,\"height\":300,\"caption\":\"THIAGO ROSSI\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\",\"name\":\"Thiago Rossi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"caption\":\"Thiago Rossi\"},\"description\":\"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \\\"GDD \u2013 O Guia Definitivo\\\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.\",\"sameAs\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\",\"https:\\\/\\\/instagram.com\\\/thiagorossix86\",\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"],\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/author\\\/thiagorossi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Formul\u00e1rio no PHP - BLOG THIAGO ROSSI","description":"Formul\u00e1rio no PHP:Neste artigo, veremos em detalhes como criar e processar formul\u00e1rios em PHP. Abordaremos desde a estrutura b\u00e1sica de um...","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:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/","og_locale":"pt_BR","og_type":"article","og_title":"Formul\u00e1rio no PHP - BLOG THIAGO ROSSI","og_description":"Formul\u00e1rio no PHP:Neste artigo, veremos em detalhes como criar e processar formul\u00e1rios em PHP. Abordaremos desde a estrutura b\u00e1sica de um...","og_url":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/","og_site_name":"BLOG THIAGO ROSSI","article_published_time":"2024-05-20T23:20:15+00:00","article_modified_time":"2025-12-02T21:34:29+00:00","og_image":[{"width":758,"height":426,"url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png","type":"image\/png"}],"author":"Thiago Rossi","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Thiago Rossi","Est. tempo de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/#article","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/"},"author":{"name":"Thiago Rossi","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87"},"headline":"Formul\u00e1rio no PHP","datePublished":"2024-05-20T23:20:15+00:00","dateModified":"2025-12-02T21:34:29+00:00","mainEntityOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/"},"wordCount":622,"publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png","articleSection":["PHP"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/","url":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/","name":"Formul\u00e1rio no PHP - BLOG THIAGO ROSSI","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/#primaryimage"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png","datePublished":"2024-05-20T23:20:15+00:00","dateModified":"2025-12-02T21:34:29+00:00","description":"Formul\u00e1rio no PHP:Neste artigo, veremos em detalhes como criar e processar formul\u00e1rios em PHP. Abordaremos desde a estrutura b\u00e1sica de um...","breadcrumb":{"@id":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/#primaryimage","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png","width":758,"height":426,"caption":"PHP"},{"@type":"BreadcrumbList","@id":"https:\/\/thiagorossi.com.br\/blog\/formulario-no-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thiagorossi.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Formul\u00e1rio no PHP"}]},{"@type":"WebSite","@id":"https:\/\/thiagorossi.com.br\/blog\/#website","url":"https:\/\/thiagorossi.com.br\/blog\/","name":"THIAGO ROSSI","description":"Mais de 20 anos de experi\u00eancia no mercado de TI!","publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"alternateName":"TR | CURSO WEB DEV","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thiagorossi.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/thiagorossi.com.br\/blog\/#organization","name":"THIAGO ROSSI","alternateName":"TR | CURSO WEB DEV","url":"https:\/\/thiagorossi.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","width":300,"height":300,"caption":"THIAGO ROSSI"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/linkedin.com\/in\/thiagox86"]},{"@type":"Person","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87","name":"Thiago Rossi","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","caption":"Thiago Rossi"},"description":"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \"GDD \u2013 O Guia Definitivo\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.","sameAs":["https:\/\/thiagorossi.com.br\/blog","https:\/\/instagram.com\/thiagorossix86","https:\/\/linkedin.com\/in\/thiagox86"],"url":"https:\/\/thiagorossi.com.br\/blog\/author\/thiagorossi\/"}]}},"_links":{"self":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/1046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1046"}],"version-history":[{"count":1,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/1046\/revisions"}],"predecessor-version":[{"id":5095,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/1046\/revisions\/5095"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media\/2835"}],"wp:attachment":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}