Ir ao conteúdo
  • Cadastre-se

Banco de dados buscando os dados antes de envia-lo


Posts recomendados

Eai galera do Clube do Hardware estou com um problema com um formulário de pedidos que estou desenvolvendo, meu banco está acessando os dados antes de envia-los, como eu poderia resolver?

irei deixar o cód abaixo:

<fieldset><legend class="legenda">Envie seu pedido abaixo<br/></legend><br/><div class="formulario"> <form method="post"> <label id="nome">Nome:	  <input name="nome" type="text" class="nome" size="80"  namaxlength="80" />    </label><br/><br/>	<label id="email">E-mail:	  <input name="email" type="email" class="email" size="80" maxlength="80" />	</label><br/><br/>    <label for="subject" class="assunto">Assunto:</label>	<select name="assunto" id="txtsubject">		<option disabled="disabled" selected="selected"> -- Selecione o assunto do pedido </option>      		<option value="Pedido Músical"> -- Música</option>      		<option value="Duvidas"> -- Dúvida</option>      		<option value="Parcerias"> -- Parceria</option>      		<option value="Problemas"> -- Problema</option>      		<option value="Publicidades"> -- Publicidade</option>      		<option value="Critícas"> -- Crítica</option>      		<option value="Sugestoes"> -- Sugestõe</option>   	</select>            <label for="message">	<br/><br/>    <span class="mensagem">Mensagem:</span> </label>    <textarea name="mensagem" cols="80" rows="10" class="mensagem"></textarea>	<br/><br/>	<input type="reset" name="clear" class="limpar" value="Limpar campos">    </label>    <input type="submit"  class="enviar" value="Enviar"/>	</label>	<br/></div></form></fieldset><?phpinclude "configuracao.php";$nome = $_POST["nome"];$email = $_POST["email"];$assunto = $_POST["assunto"];$mensagem =  $_POST["mensagem"];// aqui verificamos os campos obrigatoriosif (empty($nome)){echo"<script>    alert('Preencha com o seu nome');    history.go(-1);</script>";exit;}  if (empty($email)){echo"<script>    alert('Preencha com o seu e-mail.');    history.go(-1);</script>";exit;} if (empty($mensagem)){echo"<script>    alert('Preencha com a mensagem. ');    history.go(-1);</script>";exit;}?><?php			$insere = "INSERT INTO pedidos (id_pedido, nome, email, assunto, mensagem) VALUES('', '$nome','$email','$assunto','$mensagem')";		$sql = mysql_query($insere);	if (!mysql_error()) { 		echo "O seu pedido foi recebido com sucesso. Aguarde um administrador e/ou locutor para atende-lo."; 	}	else { 		echo "Erro ao inserir os dados..." . mysql_error();	}?></body></html>

Desde já, grato.

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Tiago Paza

 

Então,  isso pode estar acontecendo por que estas fazendo tudo na mesma página o php entende que se o campo está vazio, ele entra na verificação.

 

Tente fazer como eu sugeri:

 

formuilário.html

<fieldset><legend class="legenda">Envie seu pedido abaixo<br/></legend><br/><div class="formulario"> <form method="post" action="recebeDados.php"> <label id="nome">Nome:	  <input name="nome" type="text" class="nome" size="80"  namaxlength="80" />    </label><br/><br/>	<label id="email">E-mail:	  <input name="email" type="email" class="email" size="80" maxlength="80" />	</label><br/><br/>    <label for="subject" class="assunto">Assunto:</label>	<select name="assunto" id="txtsubject">		<option disabled="disabled" selected="selected"> -- Selecione o assunto do pedido </option>      		<option value="Pedido Músical"> -- Música</option>      		<option value="Duvidas"> -- Dúvida</option>      		<option value="Parcerias"> -- Parceria</option>      		<option value="Problemas"> -- Problema</option>      		<option value="Publicidades"> -- Publicidade</option>      		<option value="Critícas"> -- Crítica</option>      		<option value="Sugestoes"> -- Sugestõe</option>   	</select>            <label for="message">	<br/><br/>    <span class="mensagem">Mensagem:</span> </label>    <textarea name="mensagem" cols="80" rows="10" class="mensagem"></textarea>	<br/><br/>	<input type="reset" name="clear" class="limpar" value="Limpar campos">    </label>    <input type="submit"  class="enviar" value="Enviar"/>	</label>	<br/></div></form></fieldset>

Veja que acrescentei no form o action="recebeDados.php"

 

Agora você cria um arquivo chamado recebeDados.php e coloca:

<?phpinclude "configuração.php";$nome = $_POST["nome"];$email = $_POST["email"];$assunto = $_POST["assunto"];$mensagem =  $_POST["mensagem"];// aqui verificamos os campos obrigatoriosif (empty($nome)){echo"<script>    alert('Preencha com o seu nome');    history.go(-1);</script>";exit;}  if (empty($email)){echo"<script>    alert('Preencha com o seu e-mail.');    history.go(-1);</script>";exit;} if (empty($mensagem)){echo"<script>    alert('Preencha com a mensagem. ');    history.go(-1);</script>";exit;}			$insere = "INSERT INTO pedidos (id_pedido, nome, email, assunto, mensagem) VALUES('', '$nome','$email','$assunto','$mensagem')";		$sql = mysql_query($insere);	if (!mysql_error()) { 		echo "O seu pedido foi recebido com sucesso. Aguarde um administrador e/ou locutor para atende-lo."; 	}	else { 		echo "Erro ao inserir os dados..." . mysql_error();	}?>

Assim o problema será corrigido. Lembre-se que podes usar a função isset()  para verificar se a variável tem valor.

Link para o comentário
Compartilhar em outros sites

@dif obrigado pela dica ! Realmente resolveu meu problema adapter o código com o isset() e o RecebeDados.php ficou assim:

<?phpinclude "configuracao.php";if (isset($_POST['nome'])) {	$nome = $_POST['nome']; 	}	else { $nome = "Você deve preencher com o seu endereço de nome.";}	if (isset($_POST['email'])) {	$email = $_POST['email']; 	}	else { $email = "Você deve preencher com o seu endereço de e-mail.";}if (isset($_POST['mensagem'])) {	$mensagem = $_POST['mensagem']; 	}	else { $mensagem = "Você deve preencher com a mensagem do seu pedido.";}	$insere = "INSERT INTO deabo_pedidos (id_pedido, nome, email, assunto, mensagem) VALUES('', '$nome','$email','$assunto','$mensagem')";$sql = mysql_query($insere);		if (!mysql_error()) { 		echo "O seu pedido foi recebido com sucesso. Aguarde um administrador e/ou locutor para atende-lo."; 	}	else { 		echo "Erro ao inserir os dados..." . mysql_error();	}?>

Só que o problema é que ele não está validando como um campo obrigatório, o que eu precisaria aplicar para validar?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...