Você está na página 1de 26

Aula 09 PHP e

formulrios HTML

Prof. Pedro Baesse


pedro.baesse@ifrn.edu.br
Como criar um formulrio

Enviando as informaes para um programa PHP


Mtodo GET
Mtodo POST

Como tratar as informaes recebidas

Funes especiais para formatao de dados

Verificando os campos de um formulrio


Utilizado para aumentar a interatividade
fazendo comunicao entre o usurio e o site

Criados por meio do HTML

Composto de no mnimo um campo entrada


de dados e um boto para enviar as
informaes contidas nele
<form =>
<p>Digite seu e-mail: <input type="text" name="email" size="20"></p>
<p><input type="submit" value="Enviar!" name="enviar"></p>
</form>

As informaes vo ser perdidas, pois o navegador no sabe o que fazer com


elas

Para o tornar til podemos usar a opo action, informando ao navegador


para aonde enviar a informaes para serem processadas

<form action="recebe_dados.php">
<p>Digite seu e-mail: <input type="text" name="email" size="20"></p>
<p><input type="submit" value="Enviar!" name="enviar"></p>
</form>
Define um campo de entrada

Acompanhado de diversas opes

Opo Descrio
name Informa qual o nome do campo
value Informa um valor padro para o campo
size Informa o tamanho do campo exibido na tela
maxlenght Informa o nmero mximo de caracteres do campo
type Informa qual o tipo do campo de entrada de dados
Os possveis valores da opo type
Valor Descrio
Mostra uma caixa de texto de uma linha que permite a entrada de
text
valores numricos ou alfanumricos
Usado na digitao de senhas, pois camufla qualquer caractere
password
digitado com (*) mas a informao enviada normalmente
Campo escondido, no aparece na tela. Usado para passar
hidden
informaes aos programas que recebem os dados. Muito til
select Uma lista de seleo (ou drop-down)

checkbox Uma caixa de seleo, que pode ser marcada ou desmarcada

radio Botes de seleo, em que s uma opo escolhida entre vrias


Os possveis valores da opo type
Valor Descrio (Continuao)
textarea Caixa de texto com vrias linhas

file Permite o envio de arquivos

submit Boto que aciona o envio dos dados dos formulrios

Mesma funo submit, mas uma imagem substitue o boto


image
tradicional
Limpa todos os campos de um formulrio e retorna o valor-padro
reset
(se existir)
<form action="processa.php">
<p>
<strong>O que voc achou do site??</strong>
<dl><dd>
<input type="radio" name="avaliacao" value="muitobom" checked>Muito bom
<input type="radio" name="avaliacao" value="bom">Bom
<input type="radio" name="avaliacao" value="regular">Regular
<input type="radio" name="avaliacao" value="umlixo">Um Lixo
</dd></dl>
</p>
<p>
<strong>Qual a seo que voc mais gostou??</strong>
<dl><dd>
<select name="secao" size"1">
<option value="emcartaz">Em cartaz</option>
<option value="trilhasonora">Trilha Sonora</option>
<option value="fotos">Galeria de Fotos</option>
<option value="bilheteria">Bilheteria</option>
<option value="outra">Outra</option>
</select>
Outra: <input type="text" size="26" maxlength="256" name="outra">
</dd></dl>
</p>
<p>
<strong>Digite seus comentrios no campo abaixo:</strong>
<dl><dd>
<textarea name="comentarios" rows="5" cols="42"></textarea>

</dd></dl>
</p>
<p>
<strong>Diga-nos como entrar em contato com voc:</strong>
<dl><dd>
<pre>
Nome <input type="text" size="35" maxlength="256" name="nome">
E-mail <input type="text" size="35" maxlength="256" name="email">
Fone <input type="text" size="35" maxlength="256" name="fone">

</pre>
</dd></dl>
<dl><dd>
<input type="checkbox" name="novidades" value="nov">Quero receber as novidades do site por e-mail
</dd></dl>
</p>
<p>
<input type="submit" value="Enviar Dados">
<input type="reset" value="Limpar Formulrio">
</p>
</form>
Utilizamos a opo da action da tag form do
HTML
<form action="processa.php">

Existem dois mtodos de passagem de


parmetros
GET
POST

<form action="processa.php" method="POST">


Mtodo padro de envio de dados
Se no for especificado o mtodo na tag action, GET
assumido pelo PHP

Os dados so enviados juntamente com o


nome da pgina (URL) para o envio de dados
<form action="recebe_dados.php">
<p>Digite seu nome: <input type="text" name="nome" size="30"></p>
<p>Digite seu e-mail: <input type="text" name="idade" size="3"></p>
<p><input type="submit" value="Enviar!" name="enviar"></p>
</form>

http://www.seusite.com.br/recebe_dados.php?nome=Joaquim&idade=20
? - representa o incio da cadeia de variveis
& - identifica o incio de uma nova varivel
= - separa as variveis dos seus respectivos valores
Desvantagens
Limite de caracteres de 2.000
Os dados enviados so visveis na barra de
endereo do navegador
O mtodo POST resolve isso

Vantagem
Pode ser utilizado para passagem de parmetros
por link
Vantagem
Um loja virtual com um link para cada produto em
que o identificador passado como parmetro
Podem ser passados mais de uma parmetro, como
uma subcategoria

http://www.sualojinha.com.br/produto.php?id_produto=23&
sub_categoria=8

Recebidas os parmetros, um programa


processa os dados carregando as
informaes do banco de dados
Basta usar o mtodo POST em tag form
<form action="recebe_dados.php" method="POST">
<p>Digite seu nome: <input type="text" name="nome" size="30"></p>
<p>Digite seu e-mail: <input type="text" name="idade" size="3"></p>
<p><input type="submit" value="Enviar!" name="enviar"></p>
</form>

Diferente do GET, o POST envia os dados por


meio do corpo da mensagem encaminhada ao
servidor
Vantagens
No visvel a cadeia de variveis
http://www.seusite.com.br/recebe_dados.php
No limites no tamanho dos dados, sendo mais usado para
formulrios com grande quantidade de informaes
Enviar outros tipos de dados, no aceitos pelo GET, como
imagens ou outros arquivos (usar valor file na opo type
da tag input)

Desvantagens
No possvel a passagem de parmetros
Existem duas maneiras de acessar os dados recebidos

Tratar como variveis adicionando $ ao nome dos campo


especificados no formulrio. O campo nome ficaria $nome
e o campo idade $idade.
necessrio que a opo register_globals seja ativada

Usar os arrays superglobais predefinidos pelo php: $_GET e


$_POST
Os nome dos campos so usado como chaves associativas
$_GET[nome] ou $_POST[idade]

Por questes de segurana os desenvolvedores do PHP


recomendam o uso do arrays $_GET e $_POST. Caso queira
usar a primeira opo, cuide para no criar outras variveis
com o mesmo nome, pois o valores sero sobrescritos
Para evitar exibio de formatao indesejadas nas
pginas com informaes criadas pelo usurios,
como uma imagem porn, com o uso de comandos
HTML usa-se htmlspecialchars(<string>)
Substitui tags HTML como & por seus caracteres especiais
$amp, &quot...

$texto = "<img src=http://www.siteporno.com.br/foto1.jpg>";


$novo_texto = htmlspecialchars($texto);

echo $texto. "<br>";


echo $novo_texto;
Outro cuidado, ao receber dados com
caractere especial

Joo Alves, vulgo Joo do Cdigo

O PHP interpreta como Joo Alves, vulgo \Joo do


Cdigo\

A funo stripslashes(<string>) substitui \


por , \ por e (\\) por (\)
Outras duas funes importante ao usar o
mtodo GET so urldecode e urlencode
Usando GET Joaquim Legal fica
http://www.seusite.com.br/recebe_dados.php?nome=Joaquim%20Legal
Para ler corretamente
$nome = urldecode($nome);
A funo urldecode retira os cdigos
hexadecimais e urlencode recoloca

Urlencode til para redirecionar as


informaes para outro local por meio do
mtodo GET
<form action="recebe_dados.php" method="POST">
<div align="center"><center>
<p>Usurio: <input type="text" name="usuario" size="20"> &nbsp;&nbsp;

Senha: <input type="text" name="senha" size="20"></p>


<p>Nome:<input type="text" name="nome" size="20"></p>
<p>E-mail:<input type="text" name="email" size="20"></p>
<p>Cidade:<input type="text" name="cidade" size="20">
Estado<input type="text" name=estado" size="2" maxlength="2"></p>

<p><input type="submit" value="Enviar!" name="enviar"></p>


</center></div>
</form>
Recebe_dados.php - Recebe e processa os dados da pgina
$usuario = $_POST["usuario"];
$senha = $_POST["senha"];
$nome = $_POST["nome"];
$email = $_POST["email"];
$cidade = $_POST["cidade"];
$estado = $_POST["estado"];
$erro = FALSE;

if(strlen($usuario)<5)
{echo "O usurio deve possuir ao menos 5 caracteres. <br>"; $erro=TRUE;}
if(strlen($senha)<5)
{echo "A senha deve possuir ao menos 5 caracteres. <br>"; $erro=TRUE;}
if(empty($nome) OR strstr($nome,' '))
{echo "Digite o nome corretamente. <br>"; $erro=TRUE;}
if(strlen($email)<8 OR !strstr($email,'@'))
{echo "Digite o e-mail corretamente. <br>"; $erro=TRUE;}
if(empty($cidade))
{echo "Digite a cidade corretamente. <br>"; $erro=TRUE;}
if(strlen($estado)!=2)
{echo "Digite o estado corretamente. <br>"; $erro=TRUE;}
if(!$erro)
{echo "Todos os dados foram digitados corretamente! <br>";}
Funo Descrio
empty Verifica se a string est vazia
strlen Retorna o nmero de caracteres de uma string
Acha a primeira ocorrncia de um caractere em
strstr
uma string
PHP Manual:
http://www.php.net/manual/pt_BR/index.php

Desenvolvendo Websites com PHP


De Juliano Niederauer

Você também pode gostar