← Tutoriais

[PHP] Iniciantes, Formulários e validação no mesmo ficheiro

Lida 39983 vezes

Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

:D já há muito tempo que não fazia uma coisa destas... cá vai!

Formulários e validação no mesmo ficheiro

ok... um formulário é algo relativamente simples. Mas vamos aqui ver como se faz com somente um campo. Um formulário para meterem um mail para assinar uma newsletter:

Código: [Seleccione]
<form method="POST" action="DESTINO">
  <input type="text" name="mail" size="20">
  <input type="submit" value="Submeter" name="botao">
</form>


ok, isto é um formulário simples em que pede um valor e designa esse valor numa variavel "mail". acho que nisto ninguém tem duvidas. ;)

então, os visitantes, quando inserem o mail, vão ser "dirigidos" para uma página que o vai verificar. seria algo assim:

Código: [Seleccione]

if ($mail<>null){EXPRESSÂO_PARA_CONTINUAR}


aqui, vai-se verificar se o mail está preenchido. Se não estiver, devolve o respectivo erro. Quem usa esta expressão para o mail, pode usar para qualquer campo do formulário.

Então, como ligar as duas no mesmo ficheiro e fazer tudo muito claro para o visitante?

assim:

Código: [Seleccione]

<form method="POST" action="teste.php">
  <input type="text" name="mail" size="20">
  <input type="submit" value="Submeter" name="botao">
</form>
<?
if($mail<>null){O_QUE_FAZER_PARA_CONTINUAR}
else{O_QUE_FAZER_EM_ERRO}
?>


vamos complicar? vamos por dois campos no formulário;)

Código: [Seleccione]

<form method="POST" action="teste.php">
  <input type="text" name="nome" size="20">  
  <input type="text" name="mail" size="20">
  <input type="submit" value="Submeter" name="botao">
</form>
<?
if($nome<>null and $mail<>null){
  O_QUE_FAZER_PARA_CONTINUAR
}
else{
  O_QUE_FAZER_EM_ERRO
}
?>


façam o upload para um servidor com o nome teste.php e vejam. Se preencheram os dois campos, ele segue com a primeira hipótese. Se não preencherem um dels, ele fica-se pela segunda hipótese.

se não quiserem carregar uma expressão personalizada, usem este script, que já está definido para mandar uma mensagem ;) :

Código: [Seleccione]

<form method="POST" action="teste.php">
  <input type="text" name="nome" size="20">  
  <input type="text" name="mail" size="20">
  <input type="submit" value="Submeter" name="botao">
</form>
<?
if($nome<>null and $mail<>null){
  echo"OK!";
}
else{
  echo"NOP!";
}
?>


Na próxima sessão, vamos tentar dar uma continuação a este mesmo formulário. Digam-me, o que preferem? inserir numa bd? mandar um mail directamente? estou aberto a sugestões! ;)
Offline

Freedoom 
Membro
Mensagens 723 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

Muito bom morpheus!!!
tks!!
A minha sugestão era inserir numa bd :)
Offline

fpware 
Fundador
Mensagens 15318 Gostos 7
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

Que fixe! :D

Fixo!
Offline

fpware 
Fundador
Mensagens 15318 Gostos 7
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

Inserir numa BD, definitivamente!  :D
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

morpheus, gostei...depois lio os outros!
Offline

dancer_cat 
Membro
Mensagens 15 Gostos 1
Troféus totais: 23
Trófeus: (Ver todos)
Level 5 Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post

morpheus, eu coloquei esse ultimo código que colocas-te:

<form method="POST" action="teste.php">
  <input type="text" name="nome" size="20">    
  <input type="text" name="mail" size="20">
  <input type="submit" value="Submeter" name="botao">
</form>
<?
if($nome<>null and $mail<>null){
  echo"OK!";
}
else{
  echo"NOP!";
}
?>

mas depois de o carregar para o servidor, aparecem-me dois campos para preencher, mas em baixo desses campos aparece-me:

null and $mail<>null){ echo"OK!"; } else{ echo"NOP!"; } ?>

O que foi que fiz de errado?
Offline

Spread 
Membro
Mensagens 1433 Gostos 2
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Inserir e retirar mails da db e um script pata enviar uma mensagem a todos os mails(util para quem quer um sistema de newsletter).
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

Citação de: "dancer_cat"
morpheus, eu coloquei esse ultimo código que colocas-te:

<form method="POST" action="teste.php">
  <input type="text" name="nome" size="20">    
  <input type="text" name="mail" size="20">
  <input type="submit" value="Submeter" name="botao">
</form>
<?
if($nome<>null and $mail<>null){
  echo"OK!";
}
else{
  echo"NOP!";
}
?>

mas depois de o carregar para o servidor, aparecem-me dois campos para preencher, mas em baixo desses campos aparece-me:

null and $mail<>null){ echo"OK!"; } else{ echo"NOP!"; } ?>

O que foi que fiz de errado?


uma pergunta rápida... puseste isso num server com suporte php e extensão .php? ;)
Offline

dancer_cat 
Membro
Mensagens 15 Gostos 1
Troféus totais: 23
Trófeus: (Ver todos)
Level 5 Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post

Pus extenção .php, mas não sei se o servidor tem suporte php, é o servidor da netcabo...sabes se tem ou não?
Offline

Spread 
Membro
Mensagens 1433 Gostos 2
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Netcabo tanto quanto sei não tem suporte para php.

Cumps 8)
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

netcabo nem tem php nem asp...

cumps
Offline

dancer_cat 
Membro
Mensagens 15 Gostos 1
Troféus totais: 23
Trófeus: (Ver todos)
Level 5 Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post

Pois...e alguem sabe de um servidôr gratis com suport para php onde eu possa exprimentar?
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

conheço um relativamente bom, mas agora é preciso pedir a permissão dos admins. Fica o link na mesma: http://dhost.info
Offline

Spread 
Membro
Mensagens 1433 Gostos 2
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Citação de: "morpheus"
conheço um relativamente bom, mas agora é preciso pedir a permissão dos admins. Fica o link na mesma: http://dhost.info
Esse host apagou-me a conta e eu tinha lá um site que por lapso não fiz backup... fiquei fulo na altura e depois comecei a pensar em alojamento pago LOL. Fazendo uma busca aqui no fórum encontras vários SP que oferencem contas à borla e mesmo SP que só funcionam com contas grátis.

Cumps 8)
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

Hora bem dancer_cat, o meu site de alojamentos a borlix ainda n ta aberto..mas se kiseres mandame uma MP ke eu arranjo te uma continha com Bds ilimitadas,cpanel etc etc

cumps