Tratando Formulários
Uma das características mais fortes do PHP é o jeito como ele trata formulários HTML. O conceito básico que é importante entender é que qualquer elemento de formulário irá automaticamente ficar disponível para seus scripts PHP. Por favor leia a seção Variáveis externas do PHP para mais informações e exemplos de como usar formulários com PHP. Aqui vai um exemplo de formulário HTML:
Example #1 Um simples formulário HTML
<form action="action.php" method="post"> <label for="name">Your name:</label> <input name="name" id="name" type="text"> <label for="age">Your age:</label> <input name="age" id="age" type="number"> <button type="submit">Submit</button> </form>
Não há nada de especial neste formulário. É um formulário HTML comum sem nenhuma tag especial de qualquer tipo. Quando o usuário preencher este formulário e clicar no botão enviar, a página action.php é chamada. Neste arquivo nós teremos algo como isto:
Example #2 Imprimindo dados de nosso formulário
Hi <?php echo htmlspecialchars($_POST['name']); ?>.
You are <?php echo (int) $_POST['age']; ?> years old.
Um exemplo de saída deste script seria:
Hi Joe. You are 22 years old.
Para além de htmlspecialchars() e
(int)
, deve ser óbvio o que o script faz.
htmlspecialchars() transforma caracteres que sejam
especiais no HTML na sua forma codificada, de forma que não seja possível injetar tags HTML
ou JavaScript em sua página. O campo age (idade), por ser um
número, podemos simplesmente converter
para um int que automaticamente eliminará qualquer
caractere estranho. Você também pode fazer o PHP automaticamente fazer isso
utilizando a extensão filter.
As variáveis $_POST['name'] e $_POST['age']
são criadas automaticamente pelo PHP. Anteriormente
utilizamos a superglobal $_SERVER; acima
mostramos que a superglobal $_POST
contém todos os dados POST. Perceba como o
method (método) do formulário é POST. Se fosse utilizado
o método GET então os dados do formulário acabariam
na superglobal $_GET.
Você também pode utilizar a superglobal $_REQUEST,
se não se importar qual a origem do dado enviado. Ela
conterá os dados mesclados de origens GET, POST e COOKIE.