Creating a PHP Form [Dúvidas] - PHP - Portugal-a-Programar
Creating a PHP Form [Dúvidas]
By Hugu, February 17, 2010 in PHP
Numa das pesquisas pela net, cheguei a uma homepage de alguém que dava uma lição de como criar uma Form em PHP, e depois de explicar cada linha da scrip a liçao acabava com o seguinte script para ser gravado em *.html
<TD BGCOLOR="#CCCCCC">Item</TD>
<TD BGCOLOR="#CCCCCC">Quantidades</TD>
<TD>Pneus</TD>
<TD><INPUT type="text" name="tireqty" size=3 maxlength=3></TD>
<TD>Oleo</TD>
<TD><INPUT type="text" name="oilqty" size=3 maxlength=3></TD>
<TD>Velas</TD>
<TD><INPUT type="text" name="sparkplugqty" size=3 maxlength=3></TD>
Quando clico no botao "Submite Order", o browser "manda-me" para o url .../processorder.php
Quer dizer que tb tenho de criar um ficheiro Processorder.php? como crio este ficheiro?
E como fico com o registo dos pedidos? e como posso visualizar esses pedidos?
A duvida principal é como interligo uma script php a uma webpage escrita em html. E neste exemplo, como registo as encomendas?
Obvio que tens de criar um .php para receber os dados do form, neste caso crias um ficheiro processorder.php e através do post recebes o que for inserido no form.
No entanto se tens este tipo de duvidas, ainda vais ter de aprender umas coisas de php (e html) logo sugiro que leias isto:
A partir daqui: http://www.w3schools.com/PHP/php_forms.asp entra no que precisas mas sugiro que leias desde o principio...
O código que colocaste não é o script, no tutorial que leste não te escapou a parte onde o script era feito? É que esta é apenas a parte de HTML, naturalmente precisas do código PHP para tratar este pedido.
Crias esse ficheiro como crias qualquer script PHP: editor de texto onde escreves a lógica que precisas
Os pedidos podem ser guardados num ficheiro ou numa base de dados, se não os guardares num local persistente, ao fim da execução os dados são perdidos. Podem ser guardados em memória se usares sessões.
A forma como resolves o problema dependerá do objectivo. Por alto, para guardares os dados enviados precisas de ter um script PHP que obtenha os valores enviados pelo browser, através da variável $_POST acessível ao script. É uma variável que todos os scripts que sejam executados por um pedido POST vão ter, não precisas da declarar, apenas usar. Nessa variável tens acesso aos dados dos campos através dos nomes dos campos, por exemplo, $_POST['oilqty'].
Não precisas de mais nada para ligar o formulário ao script que colocar no destino do formulário o endereço do script, seja relativo seja absoluto.
De qualquer modo, toda esta explicação é uma martelada no que precisas aprender e será melhor pegares num dos vários tutoriais de PHP que por aqui andam e ires percebendo melhor como funciona a tecnologia.
Obrigado a ambos! Já deu para entender mais ou menos a coisa!
O código que colocaste não é o script, no tutorial que leste não te escapou a parte onde o script era feito?
Nao.. foi daqui que tirei o exemplo.
..mas seguindo o exemplo nesta página, não consegui o que era suposto fazerem o *.html e o welcome.php! N sei porquê!
Tenho o xampp instalado e fiz o start do servidor correctamente, ate pk tenho um validador_de_BI.php e ele funcionou bem!
O que me acontece é qdo faço o submit aparece-me uma janela de download/abrir o ficheiro welcome.php, e faço abrir com o browser e depois aparece a seguinte msg:
Notice: Undefined index: fname in /home/www/welcome.php on line 4
Notice: Undefined index: age in /home/www/welcome.php on line 5
algo correu mal e n sei que possa ter sido. o script php terá alguma gafe?
EDIT: já topei o erro!
Se já topaste o erro, mete aqui, pode haver alguém com uma duvida semelhante...
Não era bem um erro, o problema era por causa do "caminho do ficheiro" eu pensava que o no PHP se podia usar caminhos relativos, mas afinal só funcionou bem quando pus o caminho absoluto.
Ou seja http://localhost/home/welcome.php na vez /welcome.php
É claro que podes usar caminhos relativos com PHP.
Same directory: ./welcome.php ou simplesmente welcome.php (se estiver configurado para tal, e provavelmente está).