Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Programação em PHP
SEÇÕES
Manuais relacionados
+Programação em PHP
Categorias
+PHP

Índice do Manual Programação em PHP
+ Introdução à programação em PHP
+ Breve história do PHP
+ Tarefas Principais do PHP
+ Instalação de PHP no nosso servidor
+ Configuração de PHP com Apache em Windows, como CGI
+ Configuração de PHP como módulo de Apache em Windows
+ Instalação de MySQL em Windows
+ Introdução à sintaxe PHP
+ Variáveis em PHP
+ Mudança de tipo das variáveis em PHP
+ Variáveis de sistema em PHP
+ Tabelas ou Arrays em PHP
+ Trabalho com tabelas ou arrays em PHP
+ Cadeias
+ Funções
+ Mais sobre funções: passagem de parâmetros
+ Mais sobre funções: Retorno de valores
+ Controlo do fluxo em PHP: Condições IF
+ Controlo do fluxo em PHP: Loops I
+ Controlo do fluxo em PHP: Loops II
+ Operadores
+ Passagem de variáveis pela URL
+ Processar variáveis de formulários
+ Autochamada de páginas
+ Utilização de cookies
+ Sessões I
+ Sessões II
+ Trabalhar com bases de dados em PHP
+ Inserção de novos registos
+ Selecção e leitura de registos
+ Actualização de um registo
+ Eliminação de um registo
+ Subir uma aplicação PHP ao servidor
+ Colocar os ficheiros PHP fora do directório de publicação
+ Subir uma base de dados ao servidor de Internet
+ Subir uma base de dados MySQL vazia ao servidor
+ Subir uma base de dados MySQL com a estrutura e os dados
+ Migrar uma base de dados a MySQL
+ Programação orientada a objectos em PHP
+ Construtores em PHP
+ Herança em PHP

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Processar variáveis de formulários

Veremos como transferir variáveis de uma página a outra através de formulários.


Este tipo de transferência é de uma grande utilidade pois permite-nos interagir directamente com o usuário.

Este processo é similar ao explicado para as URLs. Em primeiro lugar, apresentamos uma primeira página com o formulário clássico para preencher e as variáveis são recolhidas numa segunda página que as processa:

Nota: Nem sempre se definem automaticamente as variáveis recebidas por parâmetro nas páginas web, depende de uma variável de configuração de PHP: register_globals, que tem de estar activada para que assim seja. Ver comentários do artigo ao final da página para mais informação.

<HTML>
<HEAD>
<TITLE>formulario.html</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="destino2.php">
Nome<br>
<INPUT TYPE="TEXT" NAME="nome"><br>
Apelidos<br>
<INPUT TYPE="TEXT" NAME="apelidos"><br>
<INPUT TYPE="SUBMIT">
</FORM>
</BODY>
</HTML>

<HTML>
<HEAD>
<TITLE>destino2.php</TITLE>
</HEAD>
<BODY>
<?
echo "Variável \$nome: $nome <br>\n";
echo "Variável \$apelidos: $apelidos <br>\n"
?>
</BODY>
</HTML>


Executar exemplo

$_POST

Relembramos que é possível compilar numa só variável tipo array o conjunto de variáveis que foram enviadas ao script por este método a partir da variável de sistema $_POST:

echo "Variável \$nome: " . $_POST["nome"] . "<br>\n";

Nota: Ainda que possamos recolher variáveis com este array associativo ou utilizar diretamente as variáveis que se definem na nossa página, torna-se mais seguro utilizar $_POST por duas razões, a primeira é que assim temos a certeza que essa variável vem realmente de um formulário e a segunda, que assim o nosso código será menos confuso quando queiramos lê-lo, porque ficará especificado que estamos a receber essa variável através de um formulário.

Exemplo de restrição de acesso por idade

Para continuar com exemplos de uso de formulários vamos realizar uma página que mostra e solicita a idade do visitante e, dependendo da sua idade, permite ou não visualizar o conteúdo da web. A maiores de 18 anos é-lhes permitido ver a página e a menores não.

O exemplo é muito simples e não seria correcto para utilizá-lo tal e qual a modo de uma verdadeira barreira de acesso. Só nos serve para saber como obter dados de um formulário e como tratá-los para realizar uma ou outra acção, dependendo do seu valor.

A página do formulário, à qual demos o nome idade.php, teria o seguinte aspecto:

<html>
<head>
   <title>Restringir por idade</title>
</head>

<body>

<form action="idade2.php" method="post">
Escreve a tua idade: <input type="text" name="idade" size="2">
<input type="submit" value="Entrar">
</form>

</body>
</html>


Esta é uma página sem nenhum código PHP, simplesmente tem um formulário. Se repararmos no action do formulário, que está dirigido a uma página chamada idade2.php, que é a que receberá o valor da idade e mostrará um conteúdo ou outro dependendo desse valor. O seu código seria o seguinte:

<html>
<head>
   <title>Restringir por idade</title>
</head>

<body>

<?
$idade = $_POST["idade"];
echo "Tua idade: $idade<p>";

if ($idade < 18) {
   echo "Não podes entrar";
}else{
   echo "Bemvindo";
}
?>
</body>
</html>


Esperamos que este outro código também não seja estranho. Simplesmente o formulário recebe a idade, utilizando o array $_POST. A seguir, mostra-se a idade e executa-se uma expressão condicional em função de que a idade seja menor que 18. Em caso positivo (idade menor que 18), mostra-se uma mensagem que informa que não se pode aceder à página. Em caso negativo (maior ou igual a 18) mostra-se uma mensagem de Boas-vindas.

Podemos ver o exemplo em funcionamento.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Programação em PHP

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em PHP


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
 Mostram-se 6 Comentários revistos

 Comentário de jorge rodrigues  22/8/05 
o exemplo não funciona muito bem no meu computador, a idade não passa. Existe um comentario dizendo que tem de se activar o register_globals mas não explica como.

 Comentário de  07/10/05 
O seu o register_globals deve ser ativado no php.ini que deve estar normalmente na pasta C:/php Abra com o bloco de notas(não mexa em mais nada) busque por ele em localizar Deve estar assim: register_globals = Off (muda pra On) ou ;register_globals = On (tira o ; do inicio e salva)

 Comentário de villas  07/10/05 
o seu register_globals deve estar desabilitado. ele se encontra normalmente em C:\php Abra com bloco de notas e localize-o deve estar assim: register_globals = Off (muda pra On) ou ;register_globals = On (retire o ; do inicio) Salve e teste pra ver se rolou !

 Comentário de DIOGENES  24/4/06 
ola ... eu retirei o off do register_global do php.ini.. mas quando eu coloco este comando...( $NOME = $_POST["NOME"]) ele fala : UNDEFINED INDEX NOME... o que sera que é isso ja to tentando ver isso a um bom tempo e isso esta me atrasando pq pretende fazer um sistema na internet em PHP...gostaria de se alguem puder me ajudar eu libero o SINAL DO MEY VCN OU DO PCANYWHERE.....POIS ESTOU PRECISANDO MUITO. OBRIGADO DIOGENES HENRIQUE

 Comentário de José Nilton  29/12/06 
Olá! Estou quebrando a cabeça para obter sucesso no que diz respeito a formulários, mas até agora nada. Ocorre que, ao enviar os dados de um formulário html para uma página correspondente em php, não aparece nada. O código em php é: Resultado de cadastro Configurei o register_globals para On. O que será que deve estar ocorrendo? Obrigado pela valiosa ajuda! José Nilton

 Comentário de netto  26/1/07 
Ae galera, na minha máquina esse exemplo não tá indo não; estou usando o easyphp e já habilitei a variável register_globals e ainda persiste o erro(quando enviamos as variaveis do formulário abre-se uma janela de download como se tivesse para baixar um arquivo). Preciso de uma força. Obrigado.

Comentário sem rever
Entre os comentários não revistos podem ter alguns interessantes que tenham sido enviado recentemente.
 Foi encontrado um comentário sem rever

VerVer os comentários não revistos



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites