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


Autochamada de páginas

Páginas que se chamam a si mesmas passando dados por POST ou GET: formulários reentrantes e variáveis passadas pela URL à mesma página.


Ao incluir um formulário numa página deve-se indicar, através do atributo action, o nome do ficheiro PHP ao que enviaremos os dados escritos no formulário. Desta maneira, para um esquema de envio de dados por formulário, podem participar duas páginas: uma que contém o formulário e outra que recebe os dados de dito formulário.

O mesmo acontece quando enviamos variáveis pela URL. Temos uma página que conterá o link e outra página que receberá e tratará esses dados para mostrar uns resultados.

Neste artigo vamos ver como se pode enviar e receber dados de um formulário com uma única página. Também veremos como na mesma página podemos ter links com passagem de variáveis pela URL e podemos recolher e tratar esses dados com a mesma página. A este efeito podemos chamar-lhe "autochamada de páginas", mas também é normal dar-lhe o nome de "formulários reentrantes" ou términos similares. É muito interessante conhecer o modo de funcionamento destes scripts, porque serão muito habituais nas nossas páginas PHP e ajudam muito a ter os códigos ordenados.

Em ambos casos, para formulários o envio de dados pela URL, deve-se seguir um esquema como este:

  • Comprovar se recebo dados pela URL ou pelo formulário
  • Se não recebo dados
    • Mostro o formulário e os links que pasma as variáveis
  • Se recebo dados
    • Tenho de processar o formulário ou as variáveis da URL
Para um formulário

Vejamos a continuação como seria o código de um formulário reentrante.

<html>
<head>
   <title>Chamo-me a mim mesmo...</title>
</head>

<body>
<?
if (!$_POST){
?>
   <form action="auto-chamada.php" method="post">
   Nome: <input type="text" name="nome" size="30">
   <br>
   Empresa: <input type="text" name="empresa" size="30">
   <br>
   Telefone: <input type="text" name="telefone" size=14 value="+351 " >
   <br>
   <input type="submit" value="Enviar">
   </form>
<?
}else{
   echo "<br>Seu nome: " . $_POST["nome"];
   echo "<br>Sua empresa: " . $_POST["empresa"];
   echo "<br>Seu Telefone: " . $_POST["telefone"];
}
?>
</body>
</html>


No exemplo, o primeiro passo é conhecer se se estão a receber ou não os dados através de um formulário. Pra isso comprova-se com um enunciado if se existe ou não uma variável $_POST.

Em concreto if (!$_POST) quer dizer algo assim como "Se não existem dados provenientes de um formulário". No caso de que não existam, mostro o formulário. Em caso de que efetivamente existam, recolho os dados e imprimo-os na página.

Pode-se ver o exemplo em funcionamento noutra página.

Para passagem de variáveis pela URL

A idéia é a mesma. Verificar com um enunciado if se os dados são recebidos desde uma URL. Vejamos o código a continuação. Trata-se de uma página que mostra uma serie de links para ver as tabuadas do 1 ao 10. Cada um dos links mostra uma tabuada. Pressionando o primeiro link podemos ver a tabuada do 1, no segundo a tabuada do 2, etc.

Recordemos que a página chama-se a si mesma. Para compreende-la mais facilmente é interessante ve-la em funcionamento.

<html>
<head>
<title>Tabuadas</title>
</head>

<body>
<?
if (!$_GET){
   for ($i=1;$i<=10;$i++){
      echo "<br><a href='ver_tabuada.php?tabuada=$i'>Ver a tabuada do $i</a>\n";
   }
} else {
   $tabuada=$_GET["tabuada"];
?>
   <table align=center border=1 cellpadding="1">
<?
   for ($i=0;$i<=10;$i++){
      echo "<tr><td>$tabuada X $i</td><td>=</td><td>" . $tabuada * $i . "</td></tr>\n";
   }
?>
   </table>
<?
}
?>
</body>
</html>


Este código é um pouco mais complicado, porque faz bastantes mais coisas que o anterior, mas para o assunto que nos preocupa que é a autochamada de páginas, tudo continua igual de simples.

Temos de reparar que o if verifica se recebemos dados pela URL: if (¡$_GET), que quer dizer algo como "Se não se recebem variáveis pela URL".

Em caso positivo (não se recebem dados pela URL) mostram-se os links para ver cada uma das tabuadas e em caso de receber dados, mostra-se a tabuada do número que se está a receber na URL.

Para mostrar os links e as tabuadas utilizam-se loops for, que esperamos que não resultem desconhecidos para o leitor. Pode ficar-se a conhecer mais sobre loops for em Controlo de fluxo em PHP: Loops II.

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á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