Jump to content


Photo

Validar Campos No Formulário


  • Faça o login para participar
19 replies to this topic

#1 Bittencourt

Bittencourt

    12 Horas

  • Usuários
  • 233 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro - RJ
  • Interesses:Linguagem PHP eternamente!!!!

Posted 08/02/2007, 12:05

Tenho um formulário e gostaria que houvesse uma verificação se todos os campos foram preenchidos...

Tenho o script abaixo mais não está funcionando. Poderiam me orientar sobre isso?

if ($_POST[Nome] == "" || $_POST[Nascimento] == "" || $_POST[Sexo] == "" || $_POST[Est_Civil] == "" || $_POST[Cargo] == ""
|| $_POST[Formacao] == "" || $_POST[Igreja] == "" || $_POST[End_Igreja] == "" OR $_POST[Tel_Igreja] == "" || $_POST[Ativ_Secular] == ""
|| $_POST[Rg] == "" || $_POST[End_Residencia] == "" || $_POST[Bairro_residencia] == "" || $_POST[Cid_Est] == "" || $_POST[CEP] == ""
|| $_POST[Tel_Residencial] == "" || $_POST[Celular] == ""){

print "<font size='2' face='Tahoma'>Preencha todos os campos do formulário, por favor!</font><BR>";
}

Se eu deixo um campo em branco, ele enviar os dados e dá a msg "Preencha todos os campos do formulário, por favor!"... se eu preencho todos os campos ele também envia a msg.

No formulario há campos text e select.

Agradeço a todos!

#2 xulapa4fun

xulapa4fun

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 08/02/2007, 12:10

tente usuar ao invez de

$_POST[Nome] == ""

usar

empty($_POST["Nome"])


if (empty($_POST["Nome"]) || empty($_POST["Nascimento"]) || empty($_POST["Sexo"]) || empty($_POST["Est_Civil"]) || empty($_POST["Cargo"]) || empty($_POST["Formacao"]) || empty($_POST["Igreja"]) || empty($_POST["End_Igreja"]) OR empty($_POST["Tel_Igreja"]) || empty($_POST["Ativ_Secular"]) || empty($_POST["Rg"]) || empty($_POST["End_Residencia"]) || empty($_POST["Bairro_residencia"]) || empty($_POST["Cid_Est"]) || empty($_POST["CEP"]) || empty($_POST["Tel_Residencial"]) || empty($_POST["Celular"]) ){


Edição feita por: xulapa4fun, 08/02/2007, 12:12.


#3 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 08/02/2007, 12:35

Dá na mesma...

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#4 Bittencourt

Bittencourt

    12 Horas

  • Usuários
  • 233 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro - RJ
  • Interesses:Linguagem PHP eternamente!!!!

Posted 08/02/2007, 15:34

É xulapa4fun... deu na mesma... mas valeu a tentativa... Se alguém tiver outra idéia, posta ae!

Té mais!

#5 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 08/02/2007, 15:52

Estranho :wacko:
Pois aparentemente tá certo, o problema deve estar em outro lugar, mas assim os valores que vem do "$_POST" jão exibidos tipo esta "echo $_POST[Nome];", mas assim o recomendando sempre é usar aspas para ele não confundir os valore '$_POST["Nome"]'.....

#6 aimola

aimola

    Webdeveloper

  • Usuários
  • 471 posts
  • Sexo:Masculino
  • Localidade:Sampa

Posted 08/02/2007, 16:38

é impressão minha ou tem um OR alí? :s
Experimente substituí-lo por ||

Se bem que este tipo de validação, geralmente é feito do lado cliente com javascript.

;)

Edição feita por: aimola, 08/02/2007, 16:39.

Que os passos de hoje sejam maiores que os de ontem
e que os passos de amanhã sejam mais largos que os de hoje.

#7 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 08/02/2007, 19:01

é impressão minha ou tem um OR alí? :s
Experimente substituí-lo por ||

Se bem que este tipo de validação, geralmente é feito do lado cliente com javascript.

;)


Bem OR e || é a mesma coisa em PHP....

Mas assim só JavaScript é muito inseruro pois o cara pode copiar a pagina e rancar o JavaScript para ficar seguro as 2 verificação é o ideal :)

#8 Bittencourt

Bittencourt

    12 Horas

  • Usuários
  • 233 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro - RJ
  • Interesses:Linguagem PHP eternamente!!!!

Posted 09/02/2007, 14:34

ainda não consegui êxito em minha dúvida... Se alguém puder ajudar agradeço!

Té mais!

#9 dark sonic

dark sonic

    12 Horas

  • Usuários
  • 121 posts
  • Sexo:Não informado

Posted 09/02/2007, 15:59

cara do jeito que eu uso eu faço um Echo pra cada if !! exemplo:

if($_POST['nome'] == ""){
echo "<script>alert('É necessario o preenchimento do campo Nome');</script>";
}
if($_POST['email'] == ""){
echo "<script>alert('É necessario o preenchimento do campo Email');</script>";
}
if($_POST['senha'] == ""){
echo "<script>alert('É necessario o preenchimento do campo Senha');</script>";
}

Eu sei que assim o código fica mais cumprido, mas veja a vantagem !! você pode criar um alert pra cada campo... eu faço assim pq sempre os forms que eu faço nem todos os campos tem preenchimento obrigatório, e o bom de fazer assim eh que o usuario sempre vai ficar ciente do campo que ele deixou/esqueceu de preencher !!

FLW

#10 Bittencourt

Bittencourt

    12 Horas

  • Usuários
  • 233 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro - RJ
  • Interesses:Linguagem PHP eternamente!!!!

Posted 12/02/2007, 09:57

cara do jeito que eu uso eu faço um Echo pra cada if !! exemplo:

if($_POST['nome'] == ""){
echo "<script>alert('É necessario o preenchimento do campo Nome');</script>";
}
if($_POST['email'] == ""){
echo "<script>alert('É necessario o preenchimento do campo Email');</script>";
}
if($_POST['senha'] == ""){
echo "<script>alert('É necessario o preenchimento do campo Senha');</script>";
}

Eu sei que assim o código fica mais cumprido, mas veja a vantagem !! você pode criar um alert pra cada campo... eu faço assim pq sempre os forms que eu faço nem todos os campos tem preenchimento obrigatório, e o bom de fazer assim eh que o usuario sempre vai ficar ciente do campo que ele deixou/esqueceu de preencher !!

FLW


Olá Dark Sonic!

Beleza... era isso mesmo que eu queria... coloquei e deixei em branco e deu o alerta. Só que dou Ok e ele envia os dados do email. Sei que tem algo errado no script... poderia me orientar? Segue abaixo o meu ENVIAR.PHP.

<?
include_once('/home/mvida/ultramail/ultramail.php');
include "config.php";
// primeiro vamos verificar se todos os campos foram preenchidos
if($_POST['nome'] == ""){
echo "<script>alert('É necessario o preenchimento do campo Nome');</script>";
}

// o principal agora, envia o e-mail
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .="From: Missao Vida <mvida@mvida.org.br>\n\r";
$headers .= "Return-Path: <mvida@mvida.org.br>\n";

if ( UltraMail('mvida@mvida.org.br', 'Inscrição II Congresso - Via Internet', $msg, $headers ) == TRUE )
{
print "<font size='2' face='Verdana, Arial, Helvetica, sans-serif'>Dados enviados com sucesso.<br>Confirme a inscrição enviando comprovante de depósito.</font><BR>";
}
else
{
print 'ERRO DE ENVIO: ' . $UltraMailError;
exit;
}

O ultramail é um substituto do email para o HOSTNET... Coloquei só um alerta para testar... Acho que deveria ter um if né.... tipo assim... se o nome e os outros dados estiverem em branco, dá-se o alerta. Deu o OK no alerta a pagina de cadastro fica... se estiver tudo certo... envia-se o email... mas não consigo traduzir para a programação, por ser um tanto que novato em PHP.

?>

#11 dark sonic

dark sonic

    12 Horas

  • Usuários
  • 121 posts
  • Sexo:Não informado

Posted 12/02/2007, 10:50

então tenta usar redirecionamento de url em js dps do

echo "<script>alert('não preencheu o campo NOME');</script>";


você dah outro echo usando o codigo js pra redirecionar pq ao redirecionar ele naum iria ler o resto do codigo fazendo com que não chegasse na parte do codigo que envia o email !! Ou seja, ficaria mais ou menos assim

echo "<script>alert('não preencheu o campo NOME');</script>";
echo "<script>location.url='formulario.php';</script>";


tenta faszer assim e dps vc me diz se deu certo !!!

qualquer coisa eh soh postar ae que tanto eu como qualquer outro user vai tentar lhe ajudar !!1

flw

#12 Bittencourt

Bittencourt

    12 Horas

  • Usuários
  • 233 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro - RJ
  • Interesses:Linguagem PHP eternamente!!!!

Posted 12/02/2007, 15:21

Coloquei assim mas continua enviando, Dark!

if($_POST['nome'] == ""){
echo "<script>alert('É necessario o preenchimento do campo Nome');</script>";
echo "<script>location.url='http://www.mvida.org.br/congresso/form/inscricao2.php';</script>";
}

#13 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 12/02/2007, 15:23

É meio obvio que ai dar erro ... pois vc da erro no "alert", mas ele não segura nada, e continua a execução do script vc deve fazer um jogo de "ELSE's"

<?php
include_once("/home/mvida/ultramail/ultramail.php"); 
include_once("config.php");

// primeiro vamos verificar se todos os campos foram preenchidos
if($_POST['nome'] == ""){
 echo "É necessario o preenchimento do campo Nome<br>";
 echo "<a href=\"java script:windows.history.go(-1);\">[ Voltar ]</a>";
} else {
 // o principal agora, envia o e-mail
 $headers = "C?>
ontent-type: text/html; charset=iso-8859-1\r\n";
 $headers .="From: Missao Vida <mvida@mvida.org.br>\n\r";
 $headers .= "Return-Path: <mvida@mvida.org.br>\n"; 
 if (UltraMail('mvida@mvida.org.br', 'Inscrição II Congresso - Via Internet', $msg, $headers ) == TRUE )  { 
  print "<font size='2' face='Verdana, Arial, Helvetica, sans-serif'>Dados enviados com sucesso.<br>Confirme a inscrição enviando comprovante de depósito.</font><BR>"; 
 } else { 
  print 'ERRO DE ENVIO: ' . $UltraMailError; 
  exit; 
 } 
}
?>


#14 Bittencourt

Bittencourt

    12 Horas

  • Usuários
  • 233 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro - RJ
  • Interesses:Linguagem PHP eternamente!!!!

Posted 13/02/2007, 11:53

Como eu faço para mais de um campo?

Seria assim...

<?
include_once('/home/mvida/ultramail/ultramail.php');
include "config.php";
// primeiro vamos verificar se todos os campos foram preenchidos

if($_POST['nome'] == ""){
echo "<font size='2' face='tahoma'>É necessário o preenchimento do campo Nome.</font><br>";
echo "<font size='2' face='tahoma'><a href=\"java script:window.close();\">Fechar Janela</a></font>";
} else {

if ($_POST['Nascimento'] == ""){
echo "<font size='2' face='tahoma'>É necessário o preenchimento do campo Nascimento.</font><br>";
echo "<font size='2' face='tahoma'><a href=\"java script:window.close();\">Fechar Janela</a></font>";
} else {

if ($_POST['Sexo'] == ""){
echo "<font size='2' face='tahoma'>É necessário o preenchimento do campo Sexo.</font><br>";
echo "<font size='2' face='tahoma'><a href=\"java script:window.close();\">Fechar Janela</a></font>";
} else {

// o principal agora, envia o e-mail
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .="From: Missao Vida <mvida@mvida.org.br>\n\r";
$headers .= "Return-Path: <mvida@mvida.org.br>\n";

if ( UltraMail('mvida@mvida.org.br', 'Inscrição II Congresso - Via Internet', $msg, $headers ) == TRUE )
{
print "<font size='2' face='tahoma'>Dados enviados com sucesso.<br>Confirme a inscrição enviando comprovante de depósito.</font><BR>";
}
else
{
print 'ERRO DE ENVIO: ' . $UltraMailError;
exit;
}
}
?>

Fiz assim e tá dando este erro...

Parse error: parse error, unexpected $ in /home/mvida/www/congresso/form/enviar.php on line 36

Edição feita por: Bittencourt, 13/02/2007, 12:52.


#15 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 13/02/2007, 13:26

É meio obvio que ai dar erro ... pois vc da erro no "alert", mas ele não segura nada, e continua a execução do script vc deve fazer um jogo de "ELSE's"

<?php
include_once("/home/mvida/ultramail/ultramail.php"); 
include_once("config.php");

// primeiro vamos verificar se todos os campos foram preenchidos
if($_POST['nome'] == ""){
 echo "É necessario o preenchimento do campo Nome<br>";
 echo "<a href=\"java script:windows.history.go(-1);\">[ Voltar ]</a>";
} else {
 // o principal agora, envia o e-mail
 $headers = "C?>
ontent-type: text/html; charset=iso-8859-1\r\n";
 $headers .="From: Missao Vida <mvida@mvida.org.br>\n\r";
 $headers .= "Return-Path: <mvida@mvida.org.br>\n"; 
 if (UltraMail('mvida@mvida.org.br', 'Inscrição II Congresso - Via Internet', $msg, $headers ) == TRUE )  { 
  print "<font size='2' face='Verdana, Arial, Helvetica, sans-serif'>Dados enviados com sucesso.<br>Confirme a inscrição enviando comprovante de depósito.</font><BR>"; 
 } else { 
  print 'ERRO DE ENVIO: ' . $UltraMailError; 
  exit; 
 } 
}
?>


Mais correto seria usar die().




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq