Ir ao conteúdo

Posts recomendados

Postado

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.

  • Moderador
Postado

@Tiago Paza

 

Qual é o erro? 

 

Sugiro fazer o seu php em outro arquivo. as vezes na mesma página da erro.

Outra coisa,  por que você abre e fecha o php duas vezes?

Postado

@dif

Então cara, no que eu acesso esse formulário de pedidos eu recebo o alert Preencha com o seu nome antes de eu clicar em enviar entende? Ele está requisitando os dados antes de clicar no botão...

E isso que não compreendo como corrigir...​
 

  • Moderador
Postado

@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.

Postado

@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?

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...