Jump to content


Photo

Erro Na Validação Do Formulario


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

#1 Xico - WCS Design

Xico - WCS Design

    Turista

  • Usuários
  • 26 posts
  • Sexo:Masculino
  • Localidade:São Carlos
  • Interesses:Desenvolvimento Web

Posted 29/08/2008, 06:05

Bom dia, o erro na verdade naum impede o funcionamento do site. Apenas não exibe a mensagem que é esperada. Bom, localmente o website funciona normalmente. O problema é quando eu taco o bixo na net. Ae não funfa nem cum reza braba!
Bom o correto é ele dar a mensagem de que o usuário não preencheu alguns campos... Mas ele naum exibe... Ressalvo novamente que isso só ocorre quando eu jogo no servidor web. Localmente está funfano legal!
Bom primeiro eu fiz um formulário de registro de usuários... Nele coloquei alguns campos... e quando o usuário clica em enviar o formulario chama a pagina cadastrar.php... Essa pagina por sua vez realiza a verificação dos dados e caso esteja faltando algum dado ela retorna ao formulário com os erros via GET...
O problema é que esse formulário não está exibindo os erros!

Veja a pagina cadastrar...
// VERIFICANDO DADOS
$errors = "";
if($nome == "")	$errors .= "- É necessário preencher o campo Nome.<br />";
if($sobrenome == "") $errors .= "- É necessário preencher o campo Sobrenome.<br />";
if($email == "") $errors .= "- É necessário preencher o campo E-mail.<br />";
if($cmail == "") $errors .= "- É necessário preencher o campo Confirmaçao de E-mail.<br />";
if($email != $cmail) $errors .= "- O E-mail e a Confirmaçao de E-mail nao sao iguais.<br />";
if($login == "") $errors .= "- É necessário preencher o campo Login.<br />";	
if($senha == "") $errors .= "- É necessário preencher o campo Senha.<br />";	
if($cidade == "") $errors .= "- É necessário preencher o campo Cidade.<br />";	
if($estado == "nulo") $errors .= "- É necessário selecionar um Estado.<br />";	
if($alistamento == "nulo") $errors .= "- É necessário selecionar se deseja alistar-se na guilda.<br />";	
if($charname == "") $errors .= "- É necessário preencher o Nome do Char no Jogo.<br />";	
if($classe == "nulo") $errors .= "- É necessário selecionar sua Classe no Jogo.<br />";	
if($level == "") $errors .= "- É necessário preencher seu Level no Jogo.<br />";
if($guilda_atual == "nulo") $errors .= "- É necessário responder se já possui guilda no jogo.<br />";	
if($aceito_regras == "") $errors .= "- É necessário aceitar as regras para alistar-se na guilda.<br />";

$sql_verify_charname = mysql_query("SELECT * FROM users WHERE charname=('$charname')", $conn);
$sql_verify_charname_nrow = mysql_num_rows($sql_verify_charname);
if ($sql_verify_charname_nrow > 0){
	$errors .= "O Nome do Char no Jogo escolhido (" . $login . "), já está em uso.<br />";
}
if($aceito_politica == "") $errors .= "- É necessário aceitar as Politicas de Privacidade.<br />";
if($nbras != $numbers) $errors .= "- Os números de verificaçao digitados nao correspondem aos mostrados.";

$sql_verify_login = mysql_query("SELECT * FROM users WHERE login=('$login')", $conn);
$sql_verify_login_nrow = mysql_num_rows($sql_verify_login);
if ($sql_verify_login_nrow > 0){
	$errors .= "O Login escolhido (" . $login . "), já está em uso. Por favor escolha outro.<br />";
}
$sql_verify_email = mysql_query("SELECT * FROM users WHERE email=('$email')", $conn);
$sql_verify_email_nrow = mysql_num_rows($sql_verify_email);
if ($sql_verify_email_nrow > 0){
	$errors .= "O e-mail escolhido já está em uso.<br />";
}

if ($errors == ""){
	if ($aceito_regras == "on"){
		$aceito_regras = "s";
	}else{
		$aceito_regras = "n";
	}
	if ($aceito_politica == "on"){
		$aceito_politica = "s";
	}else{
		$aceito_politica = "n";
	}
	//INSERINDO VALORES NO BANCO DE DADOS.
	   //CONTINUA MAS NAUM VOU INSERIR SENAUM FICA MT GRANDE...

Agora a parte do formulário que chama os erros...

<?
				if($_GET['errors'] != ''){
				?>
				<div id="errocad">
					<h1>Erros:</h1>
					<h2><?=$errors?></h2>
				</div>
				<br />
				<?
				}
		?>

Por favor, alguem poderia me dizer pq q estah acontecendo este erro... jah tentei de tudo... e se naum houver solução por favor me enviem uma alternativa para este caso...

MUITO OBRIGADO DESDE JAH!

Valew!
"Triste não é mudar de idéia. Triste é não ter idéia para mudar." - Idéia é tudo!

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 29/08/2008, 09:01

No seu primeiro código, a menos que a diretiva de seu servidor register_globals esteja habilitada (o que não é recomendado pelo próprio manual do PHP) você conseguirá recuperar os dados do formulário de forma direta, caso contrário, use o mesmo método que está sendo utilizado no formulário na propriedade method: post ou get.

[]'sAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 Xico - WCS Design

Xico - WCS Design

    Turista

  • Usuários
  • 26 posts
  • Sexo:Masculino
  • Localidade:São Carlos
  • Interesses:Desenvolvimento Web

Posted 31/08/2008, 04:41

Oi jah verifiquei a diretiva alterei o PHP.ini soh pra ver no q q dava e nada... Tah me deixando louco isso já... rsrsr... onde c viu um erro q naum era pra acontecer pois se trata de uma coisa simples... Olhae... tah na neh o website... v c vc dah uma olhada e pode me ajudar...

http://www.hitmangui...ecrutamento.php

Olha ae tbm como deve ficar as mensagens... como estah exibindo no servidor local!

Posted Image

Por favor... Oh e agora quem podera me ajudar! rsrsrsrsr

Tnx!
"Triste não é mudar de idéia. Triste é não ter idéia para mudar." - Idéia é tudo!

#4 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 31/08/2008, 08:36

Você verificou o php.ini no servidor ou localmente? Em todos os casos, use $_GET ou $_POST para recuperar os dados.
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#5 Xico - WCS Design

Xico - WCS Design

    Turista

  • Usuários
  • 26 posts
  • Sexo:Masculino
  • Localidade:São Carlos
  • Interesses:Desenvolvimento Web

Posted 31/08/2008, 19:39

Você verificou o php.ini no servidor ou localmente? Em todos os casos, use $_GET ou $_POST para recuperar os dados.

Verifiquei ambos os php.ini... quer dizer, remotamente eu verifiquei as configurações presentadas pelo server... Ambas estão parecidas... e estou usando o metodo $_GET para recuperar os dados dos erros e o $_POST para os do formulario! Há algum conflito entre eles? Mas oq me deixa realmente intrigado é que localmente esta funcionando! Provavelmente eh algum macete...

tnx...
"Triste não é mudar de idéia. Triste é não ter idéia para mudar." - Idéia é tudo!

#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 01/09/2008, 08:01

Pelo seu formulário, utilize $_POST, desta maneira:

if($_POST['nome'] == "")	$errors .= "- É necessário preencher o campo Nome.<br />";
...

E assim com todos os campos do formulário.

[]'sAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 Xico - WCS Design

Xico - WCS Design

    Turista

  • Usuários
  • 26 posts
  • Sexo:Masculino
  • Localidade:São Carlos
  • Interesses:Desenvolvimento Web

Posted 01/09/2008, 17:55

Oi, desculpa, mas no primeiro post não postei estes dados! Bom to postando o momento onde recupero os dados... Estava usando esse codigo!

<?
session_start();
include "config.php";
//DADOS DO USUÁRIO
$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$email = $_POST['email'];
$cmail = $_POST['cemail'];
$login = $_POST['login'];
$senha = $_POST['passwd'];
$senhacripto = md5(base64_encode($_POST['passwd']));
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
//DADOS DO CHAR
$charname = $_POST['charname'];
$classe = $_POST['classe'];
$level = $_POST['level'];
//DADOS DO CADASTRAMENTO
$aceito_regras = $_POST['aceitoregras'];
$aceito_politica = $_POST['aceitopolitica'];
$nbras = base64_decode($_POST['verify']);
$numbers = $_POST['numbers'];
$confirmastr = md5(uniqid(time() . $_SERVER['REMOTE_ADDR'] . rand(0,9)));
// VERIFICANDO DADOS
$errors = "";
if($nome == "")	$errors .= "- É necessário preencher o campo Nome.<br />";
if($sobrenome == "") $errors .= "- É necessário preencher o campo Sobrenome.<br />";
if($email == "") $errors .= "- É necessário preencher o campo E-mail.<br />";
if($cmail == "") $errors .= "- É necessário preencher o campo Confirmaçao de E-mail.<br />";
if($email != $cmail) $errors .= "- O E-mail e a Confirmaçao de E-mail nao sao iguais.<br />";
if($login == "") $errors .= "- É necessário preencher o campo Login.<br />";	
if($senha == "") $errors .= "- É necessário preencher o campo Senha.<br />";	
if($cidade == "") $errors .= "- É necessário preencher o campo Cidade.<br />";	
if($estado == "nulo") $errors .= "- É necessário selecionar um Estado.<br />";	
if($charname == "") $errors .= "- É necessário preencher o Nome do Char no Jogo.<br />";	
if($classe == "nulo") $errors .= "- É necessário selecionar sua Classe no Jogo.<br />";	
if($level == "") $errors .= "- É necessário preencher seu Level no Jogo.<br />";
if($aceito_regras == "") $errors .= "- É necessário aceitar as regras para alistar-se na guilda.<br />";

$sql_verify_charname = mysql_query("SELECT * FROM users WHERE charname=('$charname')", $conn);
$sql_verify_charname_nrow = mysql_num_rows($sql_verify_charname);
if ($sql_verify_charname_nrow > 0){
	$errors .= "O Nome do Char no Jogo escolhido (" . $login . "), já está em uso.<br />";
}
if($aceito_politica == "") $errors .= "- É necessário aceitar as Politicas de Privacidade.<br />";
if($nbras != $numbers) $errors .= "- Os números de verificaçao digitados nao correspondem aos mostrados.";

$sql_verify_login = mysql_query("SELECT * FROM users WHERE login=('$login')", $conn);
$sql_verify_login_nrow = mysql_num_rows($sql_verify_login);
if ($sql_verify_login_nrow > 0){
	$errors .= "O Login escolhido (" . $login . "), já está em uso. Por favor escolha outro.<br />";
}
$sql_verify_email = mysql_query("SELECT * FROM users WHERE email=('$email')", $conn);
$sql_verify_email_nrow = mysql_num_rows($sql_verify_email);
if ($sql_verify_email_nrow > 0){
	$errors .= "O e-mail escolhido já está em uso.<br />";
}

if ($errors == ""){
	if ($aceito_regras == "on"){
		$aceito_regras = "s";
	}
	if ($aceito_politica == "on"){
		$aceito_politica = "s";
	}
	//INSERINDO VALORES NO BANCO DE DADOS.
	$cadastrar = mysql_query("INSERT INTO usuarios
							(login, senha, senhacripto, nivel, nome, sobrenome, email, cidade, estado, status, charname, classe, level, aceitoregras, aceitopolitica, ativo, confirmastr)
							VALUES
							('$login', '$senha', '$senhacripto', '0', '$nome', '$sobrenome', '$email', '$cidade', '$estado', 'w', '$charname', '$classe', '$level', '$aceito_regras', '$aceito_politica', 'n', '$confirmastr')", $conn);
	if ($cadastrar == 1){
//...

O código acima é responsavel pela captura dos dados, validação do formulário, inserção dos dados no db e envio de e-mail de confirmação.
Ae tem o formulario de cadastro!

session_start();
include "includes/config.php";
//Recuperar variaveis já passadas, caso houver.
$nome = $_GET['name'];
$sobrenome = $_GET['sobrenome'];
$email = $_GET['email'];
$cmail = $_GET['cmail'];
$login = $_GET['login'];
$cidade = $_GET['cidade'];
$estado = $_GET['estado'];
$charname = $_GET['charname'];
$level = $_GET['level'];
$errors = $_GET['errors']; 
?>	   
//...
				<?
				if($_GET['errors'] != ''){
				?>
				<div id="errocad">
					<h1>Erros:</h1>
					<h2><?=$errors?></h2>
				</div>
				<br />
				<?
				}
		?>
//...


Lembrando que realmente o que me intriga é o fato de funcionar corretamente em meu servidor local e qnd realizo o up dos arquivos em meu servidor remoto o mesmo não funciona! O que eu gostaria de saber é quais conflitos podem haver na requisição dos dados e porque o formulário remoto não estah exibindo os dados via GET! jah que outros dados ele estah conseguindo pegar!

Valew!
"Triste não é mudar de idéia. Triste é não ter idéia para mudar." - Idéia é tudo!

#8 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 03/09/2008, 08:08

Certo, mas se o formulário de cadastro for essa página que você nos apresentou, o método dele é POST e você está usando GET.

Eu realmente não estou entendendo o que vem de onde ai. :huh: Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#9 Xico - WCS Design

Xico - WCS Design

    Turista

  • Usuários
  • 26 posts
  • Sexo:Masculino
  • Localidade:São Carlos
  • Interesses:Desenvolvimento Web

Posted 03/09/2008, 11:46

Certo, mas se o formulário de cadastro for essa página que você nos apresentou, o método dele é POST e você está usando GET.

Eu realmente não estou entendendo o que vem de onde ai. :huh:


Olá bom dia. Desculpe se não fui claro.
Bom vou tentar explicar o máximo possivel. Bom, tenho duas paginas, uma é o form onde o usuário insere os dados e envia via post para a segunda onde somente é realizado o processamento dos mesmos. Esta segunda pagina php são validados os dados e caso estejam corretos ela insere os dados no db e posteriormente envia um e-mail para a confirmação. Mas caso esteja faltando algum dos dados obrigatorios esta pagina retorna para a primeira enviando via GET os erros e os dados que foram preenchidos para que o usuário realize o cadastro corretamente. O que acontece é que no servidor local o programa funciona corretamente. Mostra os erros e retorna os dados já preenchidos, como ilustra a imagem no post acima. Mas quando realizo o upload das paginas o mesmo não acontece... somente os dados preenchidos quem são recuperados pelo formulario são mostrados novamente. Os erros não aparecem. Vou anexar os arquivos...

Espero que agora tenha conseguido explicar. e desculpa novamente por não ter sido claro suficiente anteriormente.
Obrigado

Attached Files


"Triste não é mudar de idéia. Triste é não ter idéia para mudar." - Idéia é tudo!

#10 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 04/09/2008, 07:13

Ok, entender eu entendi agora. :D

Mas, não sei se sua página de cadastro está toda ai (você também não anexou junto com a outra) mas não achei onde você volta as variáveis e o erro via GET de cadastrar.php para recrutamento.php. :huh:

[]'s Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br




1 user(s) are reading this topic

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

IPB Skin By Virteq