Manipulando dados de formulários com PHP – Parte 1
Para facilitar, esta primeira parte está divida nos seguintes tópicos:
1 - Introdução
2 - Campos Hidden
3 - Campos Text e Textarea
4 - Campos Radio
5 - Campos Checkbox
6 - Campos Select
1 - Introdução
Um formulário HTML é apenas um "rosto bonito" para onde os usuários poderão inserir informações que serão interpretados de alguma maneira por algum script do lado do servidor. E no nosso caso, esse script é um script PHP.
Primeiro: antes para poder enviar as informações, seu formulário deve conter um botão "submit", isso se consegue através do comando:
Segundo: todos os campos que serão tratados no script PHP devem conter o parâmetro "NAME", caso contrário, os dados não serão passados para o script PHP. Exemplo:
Como as informações do formulário são passadas para esse script PHP e como as informações do formulário enviado são tratadas, dependem de você.
Existem 2 métodos como as informações podem ser passadas: GET e POST. O recomendável sempre, para todos os formulários é usar o método POST, onde os dados enviados não são visíveis nas URLs, ocultando possíveis importantes informações e permitindo o envio de longas informações. O GET é totalmente o contrário disso.
Como as informações chegam para o script PHP?
Assuma o seguinte formulário:
Esse formulário usa o método POST para envio das informações, então em "script.php":
Se o formulário tivesse sido enviado usando o método GET, você simplesmente usaria $_GET no lugar de $_POST.
Observações:
Em vez de usar $_GET ou $_POST você pode escrever a variável com o mesmo nome do campo do formulário (no exemplo, $campo1 e $campo2). Mas, esse uso não é recomendado, pois se a diretiva "register_globals" na configuração do seu PHP estiver desativada, as variáveis com nome dos campos dos formulários, terão um valor vazio.
Uma solução para isso é usar a função import_request_variables no começo dos seus scripts que interpretam formulários. Essa função aceita 3 letras como argumentos: P, G e C, referentes a $_POST, $_GET e $_COOKIE respectivamente. Exemplo de uso:
O que acontece?
Exemplo: Você possui formulário com os campos "nome", "endereço" e "idade". Assuma que a diretiva "register_globals" do seu PHP esteja desligada, mas, você já havia programado o script usando as variáveis no escopo global, no lugar de $_POST.
Adicionando aquela função no começo do script, as variáveis do seu formulário postado: $_POST["nome"], $_POST["endereco"] e $_POST["idade"] serão extraídas cada para uma variável diferente: $nome, $endereco e $idade.
1 - Introdução
2 - Campos Hidden
3 - Campos Text e Textarea
4 - Campos Radio
5 - Campos Checkbox
6 - Campos Select
1 - Introdução
Um formulário HTML é apenas um "rosto bonito" para onde os usuários poderão inserir informações que serão interpretados de alguma maneira por algum script do lado do servidor. E no nosso caso, esse script é um script PHP.
Primeiro: antes para poder enviar as informações, seu formulário deve conter um botão "submit", isso se consegue através do comando:
<input type=submit value="Texto do Botão">
Segundo: todos os campos que serão tratados no script PHP devem conter o parâmetro "NAME", caso contrário, os dados não serão passados para o script PHP. Exemplo:
<input type=text name=nome_do_campo>
Como as informações do formulário são passadas para esse script PHP e como as informações do formulário enviado são tratadas, dependem de você.
Existem 2 métodos como as informações podem ser passadas: GET e POST. O recomendável sempre, para todos os formulários é usar o método POST, onde os dados enviados não são visíveis nas URLs, ocultando possíveis importantes informações e permitindo o envio de longas informações. O GET é totalmente o contrário disso.
Como as informações chegam para o script PHP?
Assuma o seguinte formulário:
<form action="script.php" method="post"> Campo 1: <input type=text name=campo1><br> Campo 2: <input type=text name=campo2><br> <input type=submit value="OK"> </form>
Esse formulário usa o método POST para envio das informações, então em "script.php":
<?php echo "O valor de CAMPO 1 é: " . $_POST["campo1"]; echo "<br>O valor de CAMPO 2 é: " . $_POST["campo2"]; ?>
Se o formulário tivesse sido enviado usando o método GET, você simplesmente usaria $_GET no lugar de $_POST.
Observações:
Em vez de usar $_GET ou $_POST você pode escrever a variável com o mesmo nome do campo do formulário (no exemplo, $campo1 e $campo2). Mas, esse uso não é recomendado, pois se a diretiva "register_globals" na configuração do seu PHP estiver desativada, as variáveis com nome dos campos dos formulários, terão um valor vazio.
Uma solução para isso é usar a função import_request_variables no começo dos seus scripts que interpretam formulários. Essa função aceita 3 letras como argumentos: P, G e C, referentes a $_POST, $_GET e $_COOKIE respectivamente. Exemplo de uso:
<?php import_request_variables("gP"); ?>
O que acontece?
Exemplo: Você possui formulário com os campos "nome", "endereço" e "idade". Assuma que a diretiva "register_globals" do seu PHP esteja desligada, mas, você já havia programado o script usando as variáveis no escopo global, no lugar de $_POST.
Adicionando aquela função no começo do script, as variáveis do seu formulário postado: $_POST["nome"], $_POST["endereco"] e $_POST["idade"] serão extraídas cada para uma variável diferente: $nome, $endereco e $idade.
Cara, parabens, este tutorial me será de grande avalia...
Estou iniciando, manjo muito pouco de PHP, sempre trabalhei mais com HTML e JavaScript, agora preciso desenvolver um sisteminha para empresa onde trabalho, e estas informações de grande conhecimento...
Valew´s e parabens...
Estou iniciando, manjo muito pouco de PHP, sempre trabalhei mais com HTML e JavaScript, agora preciso desenvolver um sisteminha para empresa onde trabalho, e estas informações de grande conhecimento...
Valew´s e parabens...
15/03/2006 8:50am
(~19 anos atrás)
É isso ai mesmo Alfred , coloquei http://localhost/script.php ai funcionou certinho.
Só vou deixar registrado que para funcionar precisou de
import_request_variables("P"); no começo do script.
Muito obrigado mesmo pela atenção. Eu estava empacado nisso.
Valeu !
Jaydson Gomes
Só vou deixar registrado que para funcionar precisou de
import_request_variables("P"); no começo do script.
Muito obrigado mesmo pela atenção. Eu estava empacado nisso.
Valeu !
Jaydson Gomes
27/02/2006 6:36am
(~19 anos atrás)
Olá Pessoal,
Obrigado por todos os comentários por aqui! Se eu não os respondi antes é porque eu não sabia que esse meu artigo tinha sido publicado.
Como podem ver eu escrevi a parte 1 e 2. E enviei a parte 1 antes da 2 obviamente, mas foi publicado aqui a 2 lá em 2004, então eu tinha até esquecido dessa parte 1 e cá está ela.
Jaydson, qual ao fato de que o IE está puxando o código, deve ser que no action do seu formulário deve estar um endereço do tipo: file://C:/bla/script.php
Cerfitique de deixar um endereço http://localhost/qualquercoisa/script.php ou apenas o nome do arquivo direto.
Abraços,
Alfred
Obrigado por todos os comentários por aqui! Se eu não os respondi antes é porque eu não sabia que esse meu artigo tinha sido publicado.
Como podem ver eu escrevi a parte 1 e 2. E enviei a parte 1 antes da 2 obviamente, mas foi publicado aqui a 2 lá em 2004, então eu tinha até esquecido dessa parte 1 e cá está ela.
Jaydson, qual ao fato de que o IE está puxando o código, deve ser que no action do seu formulário deve estar um endereço do tipo: file://C:/bla/script.php
Cerfitique de deixar um endereço http://localhost/qualquercoisa/script.php ou apenas o nome do arquivo direto.
Abraços,
Alfred
20/02/2006 4:56am
(~19 anos atrás)
É bom tentar cultivar esse metodo...
até por que em um script que você fez tem muitas chances de outra pessoa dar manutenção nele.. e assim é criado um "padrão" muito bom e facil de se visualizar, mas tenho que lembrar que muitas vezes as empresas tem politicas para que isso seja feito.
até por que em um script que você fez tem muitas chances de outra pessoa dar manutenção nele.. e assim é criado um "padrão" muito bom e facil de se visualizar, mas tenho que lembrar que muitas vezes as empresas tem politicas para que isso seja feito.
15/02/2006 7:30am
(~19 anos atrás)
Desculpem a ignorancia , mas como disse sou iniciante.
assumindo o codigo exemplo , tentei de todas as maneiras:
com import_request_variables("gP"); e da outra maneira tb. Mas quando o Form puxa o Script.php me abre uma janela do IE mostrando apenas o código.já quando acesso diretamente o Script.php (localhost/script.php) ele mostra o script funcionando.
Alguém pode me dar uma dica ai? Agradeço!
Será alguma configuração no php.ini ?
assumindo o codigo exemplo , tentei de todas as maneiras:
com import_request_variables("gP"); e da outra maneira tb. Mas quando o Form puxa o Script.php me abre uma janela do IE mostrando apenas o código.já quando acesso diretamente o Script.php (localhost/script.php) ele mostra o script funcionando.
Alguém pode me dar uma dica ai? Agradeço!
Será alguma configuração no php.ini ?
10/02/2006 10:26am
(~19 anos atrás)
Essa eu não sabia!
import_request_variables
vai enconomizar bastante meu tempo!!!
Diego CODU
http://www.cot.org.br/
import_request_variables
vai enconomizar bastante meu tempo!!!
Diego CODU
http://www.cot.org.br/
08/02/2006 9:32am
(~19 anos atrás)
Não se deve esquecer de tratar os dados provenientes do formulário para evitar que pessoas maliciosas tentes burlar o teu programa.
24/01/2006 9:15am
(~19 anos atrás)
Jairus Lopes