Uma das características mais fortes do PHP é a forma 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:
Exemplo #1 Um simples formulário HTML
<form action="action.php" method="post"> <label for="nome">Seu nome:</label> <input name="nome" id="nome" type="text"> <label for="idade">Sua idade:</label> <input name="idade" id="idade" type="number"> <button type="submit">Enviar</button> </form>
Não há nada de especial neste formulário. É um formulário HTML comum sem nenhuma etiqueta 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:
Exemplo #2 Imprimindo dados de nosso formulário
Olá, <?php echo htmlspecialchars($_POST['nome']); ?>.
Você tem <?php echo (int) $_POST['idade']; ?> anos de idade.
Um exemplo de saída deste script seria:
Olá, Maria. Você tem 22 anos de idade.
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 etiquetas HTML
ou JavaScript em sua página. O campo "idade", por ser um
número, pode ser simplesmente convertido
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['nome'] e $_POST['idade']
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
método (method) do formulário é POST. Se fosse utilizado
o método GET, os dados do formulário acabariam
na superglobal $_GET.
Você também pode utilizar a superglobal $_REQUEST,
se não se importar com a origem do dado enviado. Ela
conterá os dados mesclados das origens GET, POST e COOKIE.