Curso de PHP: Recuperando dados de formulários com a variável $_POST

No post recuperando dados de formulários com a variável $_GET foi introduzido o conhecimento básico para a criação de um formulário, e como recuperar suas informações em PHP utilizando o método GET.

Como citado no mesmo post, os valores de cada campo do formulário será exibido na url do site após enviado, e esse comportamento pode não ser o desejado, uma vez que um formulário pode conter desde informações sigilosas, como uma senha, e outras informações de controle interno da aplicação que você não gostaria que o usuário soubesse.

Para esconder tais informações, utilizamos o método de envio POST, onde os campos não são inseridos na URL do site, e sim no corpo da requisição, sendo quase invisível ao usuário.

Montando o formulário

<html>
    <head>
        <title>Recuperando dados do formulário com PHP.</title>
    </head>
    <body>
        <h1>Formulário de Contato</h1>
        <form name="formulario" action="resgata.php" method="post">
            <label for="txtNome">Seu nome:</label>
            <input type="text" name="txtNome" id="txtNome" /> <br />
            <label for="txtEmail">Seu email:</label>
            <input type="text" name="txtEmail" id="txtEmail" /> <br />
            <label for="cboDepartamento">Departamento</label>
            <select name="cboDepartamento" id="cboDepartamento">
                <option value="1">Recursos Humanos</option>
                <option value="2">Contabilidade</option>
                <option value="3">Marketing</option>
            </select><br />
            <label for="txtAssunto">Assunto:</label>
            <input type="text" name="txtAssunto" id="txtAssunto" /> <br />
            <label for="txtMensagem">Mensagen:</label><br />
            <textarea name="txtMensagem" id="txtMensagem"></textarea>
            <input type="submit" name="cmdEnviar" id="cmdEnviar" value="Enviar"/>
        </form>
    </body>
</html>

Como pode ter notado, o formulário montado é semelhante ao do post anterior, com uma única diferença: em method, dentro da tag form, o valor foi alterado para post.

As recomendações e uso das demais tags continuam.

Recuperando as informações no PHP.

Para recuperar as informações do formulário acima, utilize:

<?php
    echo 'Seu nome: ' . $_POST['txtNome'] . '<br />';
    echo 'Seu email: ' . $_POST['txtEmail'] . '<br />';
    echo 'Deparatamento: ';
   
    switch ($_POST['cboDepartamento']) {
        case '1':
            echo 'Recursos humanos';
            break;
        case '2':
            echo 'Contabilidade';
            break;
        case '3':
            echo 'Marketing';
            break;
    }
   
    echo '<br />';
   
    echo 'Assunto: ' . $_POST['txtAssunto'] . '<br />';
    echo 'Mensagem: ' . $_POST['txtMensagem'] . '<br />';
?>

Esse código PHP também é muito semelhante ao da página anterior, porém, no lugar de $_GET, utilizamos $_POST. O resultado exibido no browser também é o mesmo.

Reforço: utilizando o método POST não impede que os dados sejam interceptados e manipulados pelo usuário.