php tratando formulários - dca.fee.unicamp.brglaucya/ifsp/lpi/php - tratamento de...
Post on 15-Mar-2020
10 Views
Preview:
TRANSCRIPT
PHP Tratando Formulários
Prof. Gláucya Boechatgcbcht@gmail.com
2
Tratando FormuláriosTratando 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
<form action="recebe_dados.php" method="POST">
4
Método GetMé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
http://www.seusite.com.br/recebe_dados.php?nome=Aluno&idade=19
5
Método GetMé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
http://www.seusite.com.br/recebe_dados.php?nome=Aluno&idade=19
6
Exemplo arquivo.htmlExemplo 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"/>
</form>
7
Variável $_GETVariá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.
Você tem 19 anos.
8
ExemploExemplo<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 POSTMé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.
http://www.seusite.com.br/recebe_dados.php
11
Método POSTMé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.htmlExemplo 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"/>
</form>
13
Variável $_POSTVariá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.
Você tem 19 anos.
14
ExemploExemplo<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>
</p>
15
curso.phpcurso.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 $_REQUESTVariá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– GET e POST
18
Variável $_REQUESTVariável $_REQUEST
<html>
<body>
Olá <?php echo $_REQUEST["nome"]; ?><br>
você tem<?php echo $_REQUEST["idade"]; ?> anos.
</body>
</html>
Saída
Olá Aluno.
Você tem 19 anos.
19
ExemploExemplo<?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
ExemploExemplo
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></html>
24
dados.phpdados.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 : ADS
25
ExemploExemplo<?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" />
</form>
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.
<input type="image" src="image.gif" name="sub" />
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 mail ( string $to , string $subject , string $message [, string $additional_headers [,
string $additional_parameters ]] )
28
ExemploExemplo<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='email'><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['email']; $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
Enviando e-mail pelo gmailEnviando e-mail pelo gmail<?php require_once('Mail.php'); // Incluindo a classe $to = $_POST['email']; $from = "email_do_google_apps@gmail.com"; $subject = $_POST['assunto']; $body = $_POST['mensagem']; //corpo da msg
$host = "ssl://smtp.gmail.com"; // Servidor do Gmail.
$username = "email_do_google_apps@gmail.com"; $password = "senha_do_google_apps"; $headers = array ('From' => $from,'To' => $to, 'Subject' => $subject);
$smtp = Mail::factory('smtp', array ('host' => $host, 'port' => 465, 'auth' => true, 'debug' => false, 'username' => $username, 'password' => $password) );
$mail = $smtp->send($to, $headers, $body); // Efetuando o envio ?>
top related