sexta-feira, 13 de janeiro de 2012

As variáveis $_POST e $_GET


Hoje, vamos aprender o que é mais usado no PHP. Utilizar dados provenientes dos formulários HTML usando as variáveis reservadas $_POST e $_GET.




Nota: Para testar os códigos deste post você de preparar o ambiente para rodar PHP leia esse post aqui

Nota: Primeiramente vamos criar o formulário HTML. Para quem não sabe o que é um formulário HTML. Clique Aqui. e seguir o tutorial.

Uma das principais funcionalidades do PHP é fazer o tratamento formulários HTML. Para fazer isso, precisamos utilizar as váriaveis reservadas $_POST e $_GET. Vou explicar um pouco sobre essas variáveis.

A variável $_POST, é um array, cujo seus indices é o nome do elemento html. Um Exemplo Abaixo.

Nome do arquivo: form.html

<form action="processaForm.php" method="POST">
<label>Nome: </label><input type="text" name="nome" />
<label>Email: </label><input type="text" name="email" />
<input type="submit" value="Salvar" />
</form>
Detalhando...

No código acima, foi criado um form, no qual tem os campos de Nome e Email para serem preechidos, quando o botão de submit for acionado, os dados dos textbox vão para a página processaForm.php

Perceba que o atributo "name" foi passado. Com os valores "nome" no primeiro textbox e "email" no segundo textbox. São esses valores que é o indice do array $_POST;

Agora vamos ver o exemplo do arquivo PHP recebendo esses dados:

Arquivo: processaForm.php
<?php
//Agora vamos receber os dados do formulário.
$nome = $_POST["nome"]; //Perceba que foi passado como indice do array, o nome do elemento HTML.
$email = $_POST["email"]; //Mesmo caso acima, só que o indice do array é o nome do outro elemento HTML

echo "Nome: " . $nome . " Email: " . $email;

?>

A variável reservada $_GET, é semelhante a variável $_POST. As unicas mudanças são que no formulário HTML o atributo "method" é "GET", e as variáveis vem pela URL. Exemplos:

Arquivo: form.html
<form action="processaForm.php" method="GET">
<label>Nome: </label><input type="text" name="nome" />
<label>Email: </label><input type="text" name="email" />
<input type="submit" value="Salvar" />
</form>

Detalhando...

Perceba que é o mesmo Código do formulário anterior, mudando somente o atributo "method"

O Arquivo PHP também é o mesmo, só muda o nome da variável reservada.

Arquivo: processaForm.php
<?php
//Agora vamos receber os dados do formulário.
$nome = $_GET["nome"]; //Perceba que foi passado como indice do array, o nome do elemento HTML.
$email = $_GET["email"]; //Mesmo caso acima, só que o indice do array é o nome do outro elemento HTML

echo "Nome: " . $nome . " Email: " . $email;

?>

Os valores do formulário, vem pela URL. Quem nunca viu aqueles links. "http://site.com/index.php?nome=vitor". Aquele "nome=vitor" é a variável "nome" com o valor "vitor". Não é recomendado usar o GET pois, como podemos reparar, os dados são fácilmente manipulados, pois basta mudar o valor da variável e processar novamente.

Então é isso galera, o básico de formulários HTML e as variáveis reservadas $_POST e $_GET. Qualquer dúvida, só comentar o POST.

Abraços!

Um comentário:

  1. o meu código está dando erro, uso a variável reservada $_GET.. segue abaixo o erro.

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-12.1\www\Tcc_T4\verificacaoCronograma.php on line 22

    ResponderExcluir