PHP
Tratando Formulários
Prof. Gláucya Boechat
2
Tratando Formulários
Tratando Formulários
●
Quando um formulário é submetido para um
script PHP
–
Qualquer variável do formulário será
automaticamente disponível para o script PHP
<html>
<body>
<form
action="recebe_dados.php
">
Nome: <input type="text" name="
nome
"/>
Idade: <input type="text" name="
idade
"/>
<input type="submit" value=”Enviar” name=”
enviar
”/>
<input type="reset" name="
limpar
" value="Limpar"/>
</form>
</body>
</html>
3
Enviando as informações para
um programa PHP
Enviando as informações para
um programa PHP
●
Existem dois métodos de passagem de
parâmetros:
–
Get
–Post
●
Parâmetro da tag form
–
method
4
Método Get
Método Get
●
Método padrão para o envio de dados
–
O método utilizado se nenhum método for especificado no
parâmetro
method
da tag
form
.
●
Os dados serão enviados juntamente com a URL.
●
O método Get não deve ser usado para enviar senhas
ou informações confidenciais.
●
Não é adequado para variáveis com valores superiores
a 2000 caracteres
5
Método Get
Método Get
●
Caractere
?
–
Representa o início de uma cadeia
●
Símbolo
&
–
Identifica o início de uma nova variável
●
Caracter
=
–
Separa as variáveis de seus repectivos valores
6
Exemplo arquivo.html
Exemplo arquivo.html
<form
action="
recebe_dados.php
" method="
get
"
>
Nome: <input type="text" name="
nome
" />
Idade: <input type="text" name="
idade
"/>
<input type="submit" value=”Enviar” name=”
enviar
”>
<input type="reset" name="
limpar
" value="Limpar"/>
7
Variável $_GET
Variável $_GET
●
Ao clicar no botão
submit
do formulário da
página HTML.
–
Os dados do formulário são enviados para o
arquivo PHP
●
Utiliza da variavel
$_GET
para recolher os
dados
<html> <body>
Olá <?php echo $_GET["nome"]; ?><br>
você tem<?php echo $_GET["idade"]; ?> anos. </body>
</html>
Saída
Olá Aluno.
8
Exemplo
Exemplo
<html> <body> <form method="get" action="cor.php"> <p>Informe seu nome:</p> <input type="text" name="nome"></p> <p>Escolha uma cor:</p><input type="radio" name="cor" value="r" /> Vermelho <input type="radio" name="cor" value="g" /> Verde
<input type="radio" name="cor" value="b" /> Azul </p>
<input type="submit" value="Enviar" /> </form>
</body> </html>
9
Exemplo (cor.php)
Exemplo (cor.php)
<?php
switch ($_GET["cor"]) {
case "r": $background = "rgb(255,0,0)"; break; case "g": $background = "rgb(0,255,0)"; break; case "b": $background = "rgb(0,0,255)"; break; default: $background = "rgb(255,255,255)"; break; } ?> <html> <body style="background: <?php echo $background;?>;"> <? echo "<h1>Olá " . $_GET["nome"] . "</h1>"; ?>
</body> </html>
10
Método POST
Método POST
●
O método
POST
é utilizado no parâmetro
method
da tag
form
.
●
Os dados do formulário são enviados no
próprio corpo da mensagem encaminhada ao
servidor.
–
O usuário não verá em sua barra de endereços a
cadeia de variáveis
–
Apenas o endereço do programa ativado será
mostrado.
11
Método POST
Método POST
●
Não há limitação de tamanho dos dados a serem
enviados.
–
Ao contrário do GET, que envia os dados por uma
cadeia de variáveis de tamanho limitado.
–
O método é utilizado para formulários que possuem
muitas informações a serem enviadas.
●
Podem ser enviados
–
Imagens
–
Ou outros arquivos
● É preciso utilizar o valor file no parâmetro type da tag input <input name="nome_arquivo" type="file" />
12
Exemplo arquivo.html
Exemplo arquivo.html
<form
action="
recebe_dados.php
" method="
post
"
>
Nome: <input type="text" name="
nome
" />
Idade: <input type="text" name="
idade
" />
<input type="submit" value=”Enviar” name=”
enviar
”>
<input type="reset" name="
limpar
" value="Limpar"/>
13
Variável $_POST
Variável $_POST
●
A variável $_POST é usada para recolher os
dados
–
Enviadas pelo método POST da tag
form
<html> <body>
Olá <?php echo $_POST["nome"]; ?><br>
você tem<?php echo $_POST["idade"]; ?> anos. </body>
</html> Saída
Olá Aluno.
14
Exemplo
Exemplo
<p>Escolha um curso</p>
<form name="informacoes" method="POST" action="curso.php"> <select name="curso">
<option value="ADS" selected>Tecnologia em Análise e Desenvolvimento de Sistemas</option>
<option value="Automação">Tecnologia em Automação Industrial</option>
<option value="Matemática">Licenciatura em Matemática</option> <option value="TMSI">Técnico de Manutenção e Suporte em
Informática</option>
<option value="TAI">Técnico em Automação Industrial</option> </select> </p>
<input name="enviar" type="submit" value="Enviar"> </form>
15
curso.php
curso.php
<html>
<body>
<h3>Resultado</h3>
<?php
echo "<p>Curso selecionado: " .
$_POST
['
curso
'] . "</p>\n";
?>
</body>
</html>
16
Variável $HTTP_POST_VARS
[deprecated]
Variável $HTTP_POST_VARS
[deprecated]
●
A variável $HTTP_POST_VARS é usada para
recolher os dados
–
Enviadas pelo método POST da tag
form
●
Disponível se a diretiva register_globals = on.
–
Desde o PHP 4.2.0 o valor default de
register_globals é off
echo $HTTP_POST_VARS['
nome'];
echo $HTTP_POST_VARS['
idade'];
echo $nome;
echo $idade;
17
Variável $_REQUEST
Variável $_REQUEST
●
A variável predefinida $_REQUEST contém as
variáveis
–
$_GET
–$_POST
–$_COOKIE
●
A variável pode ser usada para recolher os
dados enviados pelos métodos
18
Variável $_REQUEST
Variável $_REQUEST
<html> <body>
Olá <?php echo $_REQUEST["nome"]; ?><br>
você tem<?php echo $_REQUEST["idade"]; ?> anos. </body>
</html>
Saída
Olá Aluno.
19
Exemplo
Exemplo
<?php
if(isset($_REQUEST['enviar'])){
echo "</p><h2>Dados do formulário</h2> <hr> </p>"; echo "Nome : {$_REQUEST['nome']} </br>";
echo "Comentário : {$_REQUEST['comentario']}</p><hr>"; }else{
echo "<h2>Formulário</h2>
<form name='informacoes' method='POST' action=#>
Informe seu nome: <input name='nome' type='text'><br/><br/> Escreva um comentário: </p>
<textarea name='comentario' rows='3' cols='25'></textarea> <br/><br/> <input name='enviar' type='submit' value='Enviar'>
</form>"; }
20
Exemplo
Exemplo
21
Adicionando valores nos
formulários
Adicionando valores nos
formulários
<?php
if(isset($_POST['enviar'])){
echo "Dados enviado: </p> <pre>"; print_r($_POST); echo "</pre>"; } ?>
<h2>Login</h2>
<form name="LoginForm" method="POST" action="#">
Login : <input name="login" type="text" value="<?php echo $_POST['login']; ?>"><br/><br/>
Senha : <input name="senha" type="password" value="<?php echo $_POST['senha']; ?>"><br/><br/>
<input type="submit" name="enviar" value="Enviar"> <input type="reset" name="limpar" value="Limpar" /> </form>
22
Adicionando valores nos
formulários
Adicionando valores nos
formulários
23
Variáveis de formulários mais
complexos
Variáveis de formulários mais
complexos
<html>
<form action="dados.php" method="
post
">
Nome: <input type="text" name="
Dados
[nome]" /><br />
Idade: <input type="text" name="
Dados
[idade]" /><br />
Curso: <br />
<select multiple name="
Curso[]
">
<option value="
ADS
">
Tecnologia em Análise e Desenvolvimento de Sistemas</option>
<option value="
TAI
">
Tecnologia em Automação Industrial</option>
<option value="
LM
">
Licenciatura em Matemática</option>
</select><br />
<input type="submit" value="Enviar dados!" />
</form>
24
dados.php
dados.php
<html>
<?php
echo '<pre>';
echo htmlspecialchars(print_r(
$_POST
, true));
echo '</pre>';
echo "<br> Nome : ".
$_POST
["
Dados
"]["
nome
"];
echo "<br> Idade : ".
$_POST
["
Dados
"]["
idade
"];
echo "<br> Curso : ".
$_POST
["
Curso
"][
0
];
?>
</html>
Saída Array( [Dados] => Array ( [nome] => Aluno [idade] => 19 ) [Curso] => Array ( [0] => ADS )) Nome : Aluno Idade : 19 Curso : ADS25
Exemplo
Exemplo
<?php
if (isset($_POST['enviar'])){
echo "Você gosta das linguagens:<br />";
foreach($_POST['linguagens'] AS $languagem) echo "$languagem<br />"; }
?>
<form action="linguagens.php" method="post"> Quais liguangens você conhece? </p>
<input type="checkbox" name="linguagens[]" value="php" />PHP<br /> <input type="checkbox" name="linguagens[]" value="C" />C<br />
<input type="checkbox" name="linguagens[]" value="Java" />Java<br />
<input type="checkbox" name="linguagens[]" value="Python" />Python </p> <input type="submit" name="enviar" value="Enviar" />
26
variáveis Adicionais
(submit image)
variáveis Adicionais
(submit image)
●
Utilizando imagens ao invés do botão de
submit
●
Ao clicar em algum lugar da imagem,
–
Será enviado duas variáveis contendo as
coordenadas do clique do usuário na imagem
●
sub_x e sub_y.
27
Função mail( )
Função mail( )
●
A função mail envia um e-mail
–
Na mensagem a ser enviada, cada linha deve ser
separada por (\n). E cada linha não deve ser maior
que 70 caracteres.
–
A função TRUE se o e-mail foi aceito com sucesso
para entrega, e FALSE caso contrário
bool
( string
$to
, string
$subject
,
string
$message
[, string
$additional_headers
[,
string
$additional_parameters
]] )
28
Exemplo
Exemplo
<form name='envia_email' action ='email.php'
method='
POST
'>
Nome: <input type='text' name='
nome
'><br>
Assunto: <input type='text' name='
assunto
'><br>
Email: <input type='text' name='
'><br>
Messagem:<br/><textarea name="
mensagem
"
cols="65" rows="4"></textarea> </p>
<input type="submit" value="Enviar"
name=”enviar” />
<input type="reset" name="limpar"
value="Limpar" />
</form>
29
Exemplo (envia_email.php)
Exemplo (envia_email.php)
<?php
$nome =
$_POST
['
nome
'];
$email =
$_POST
['
'];
$mensagem =
$_POST
['
mensagem
'];
$msg = "Nome: ".$nome."<BR>\n";
$msg .= "Email: ".$email."<BR>\n";
$msg .= "Mensagem: ".$mensagem."
<BR>\n";
if(mail("aluno@ifspguarulhos.edu.br",
$_POST
['
assunto
'],$msg)){
echo("Email enviado com sucesso!!!");
} else {
echo("Erro durante o envio do email");
}
?>
30