Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leozin

Formulario error

Recommended Posts

Ola galera!

Na tentativa de fazer um formulario que qnd a pessoa nao digitar um campo obrigatorio

ele aparece um alerte e volta com os campo que ja estavam preenchidos, fiz uma condicao

que nao esta funcionando, esta aparecendo esses erros

Notice: Undefined index: cidade in /home/marfmaqc/public_html/site.php on line 283
Notice: Undefined variable: error in /home/marfmaqc/public_html/site.php on line 301
Warning: require(orcamento/enviar.php) [function.require]: failed to open stream: No such file or directory in /home/marfmaqc/public_html/site.php on line 302
Warning: require(orcamento/enviar.php) [function.require]: failed to open stream: No such file or directory in /home/marfmaqc/public_html/site.php on line 302
Fatal error: require() [function.require]: Failed opening required 'orcamento/enviar.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/marfmaqc/public_html/site.php on line 302

 

O codigo é esse(comeca na linha 275):

if (isset($_POST['orcamento'])){

$nome = $_POST['nome'];
$email = $_POST['email'];
$empresa = $_POST['empresa'];
$cpf = $_POST['cpf'];
$inscricao = $_POST['inscricao'];
$estado = $_POST['estado'];
$cidade = $_POST['cidade'];
$site = $_POST['site'];
$telefone = $_POST['telefone'];
$mensagem = $_POST['mensagem'];
if (!empty($nome)) {
	$error[1] = "Preencha seu nome.";
}if (!empty($email)) {
	 $error[2] = "Preencha seu nome.";	
}if (!empty($cpf)) {
	 $error[3] = "Preencha seu CPF ou CNPJ.";	
}if (!empty($estado)) {
	 $error[4] = "Selecione seu estado.";
}if (!empty($cidade)) {
	 $error[5] = "Selecione sua cidade.";
}if (!empty($telefone)) {
	 $error[6] = "Preencha seu telefone.";
}if (!empty($mensagem)) {
	$error[7] = "Preencha sua mensagem.";
}if (count($error) == 0){
require_once ("orcamento/enviar.php"); 
}
if (count($error) != 0) {
		foreach ($error as $erro) {
	echo '<script language="Javascript" type="text/javascript">
alert("$erro");
history.back();
</script>';	

		}
	}
}

 

e o formulario é esse:

<form method="post" action="" enctype="multipart/form-data" name="frmorcamento" onsubmit="return submit_page(this);">
<label for="nome">Nome*:</label>
<input type="text" name="nome" value="" /><br />

<label for="email">E-mail*:</label>
<input type="text" name="email" value="" /><br />

<label for="empresa">Empresa:</label>
<input type="text" name="empresa" value="" /><br />

<label for="cpf">CNPJ/CPF*:</label>
<input type="text" name="cpf" value="" /><br />

<label for="inscricao">Insc. Estadual:</label>
<input type="text" name="inscricao" value="" /><br />

<label>Estado*:</label><select id="estado" name="estado"></select> <br />
<label>Cidade*:</label><select id="cidade" name="cidade"></select> <br />

<label for="site">Website:</label>
<input type="text" name="site" value="" /><br />

<label for="telefone">Telefone*:</label>
<input type="text" name="telefone" value="" /><br />

<label for="mensagem">Mensagem*:</label>
<textarea name="mensagem"></textarea><br />

<input type="submit" name="orcamento" id="enviarorcamento" value="Enviar" />

</form>

Alguem poderia me dizer um sistema pros campos ja preechidos nao se apagarem depois

do alert e o formulario enviar?

agradeço desde ja!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra que isso?

 

     if (!empty($nome)) {   
$error[1] = "Preencha seu nome.";
       }if (!empty($email)) {
                $error[2] = "Preencha seu nome.";      
       }if (!empty($cpf)) {
                $error[3] = "Preencha seu CPF ou CNPJ.";       
       }if (!empty($estado)) {
                $error[4] = "Selecione seu estado.";
       }if (!empty($cidade)) {
                $error[5] = "Selecione sua cidade.";
       }if (!empty($telefone)) {
                $error[6] = "Preencha seu telefone.";
       }if (!empty($mensagem)) {

 

nao vai printa mesmo os erros você nao deu echo.

e nao precisa colocar !empty basta somente o empty

 

if(empty($nome)){
echo "Preencha o nome";
}elseif(empty($email)){
echo "preencha o email tbm";
}

 

e assim vai indo

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra que isso?

 

     if (!empty($nome)) {   
$error[1] = "Preencha seu nome.";
       }if (!empty($email)) {
                $error[2] = "Preencha seu nome.";      
       }if (!empty($cpf)) {
                $error[3] = "Preencha seu CPF ou CNPJ.";       
       }if (!empty($estado)) {
                $error[4] = "Selecione seu estado.";
       }if (!empty($cidade)) {
                $error[5] = "Selecione sua cidade.";
       }if (!empty($telefone)) {
                $error[6] = "Preencha seu telefone.";
       }if (!empty($mensagem)) {

 

nao vai printa mesmo os erros você nao deu echo.

e nao precisa colocar !empty basta somente o empty

 

if(empty($nome)){
echo "Preencha o nome";
}elseif(empty($email)){
echo "preencha o email tbm";
}

 

e assim vai indo

Bom agora eu fiz assim

$error = 0;
if (empty($nome)) {
	$error = "Preencha seu nome.";
}elseif (empty($email)) {
	 $error = "Preencha seu nome.";	
}elseif (empty($cpf)) {
	 $error = "Preencha seu CPF ou CNPJ.";	
}elseif (empty($estado)) {
	 $error = "Selecione seu estado.";
}elseif (empty($cidade)) {
	 $error = "Selecione sua cidade.";
}elseif (empty($telefone)) {
	 $error = "Preencha seu telefone.";
}elseif (empty($mensagem)) {
	$error = "Preencha sua mensagem.";
}elseif ($error == 0){
include ("orcamento/enviar.php"); 
}


if ($error != 0) {
	echo '<script language="Javascript" type="text/javascript">
alert("$error");
history.back();
</script>';			

	}

mas ainda nao aparece o alert e aparece esse erro

Notice: Undefined index: cidade in /home/marfmaqc/public_html/site.php on line 283

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de verificar cada variável, veja se ela existe primeiro com a função isset(); Exemplo:

isset($cidade) ? $cidade : false;

ou

if (isset($cidade) and empty($cidade)) {
                $error = "Selecione sua cidade.";}

 

 

Seu segundo IF deverá ficar assim:

 

if ($error != 0) 
{
 print '<script language="Javascript" type="text/javascript">
        alert("'.$error.'");
        history.back();
        </script>';                     

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de verificar cada variável, veja se ela existe primeiro com a função isset(); Exemplo:

isset($cidade) ? $cidade : false;

ou

if (isset($cidade) and empty($cidade)) {
                $error = "Selecione sua cidade.";}

 

 

Seu segundo IF deverá ficar assim:

 

if ($error != 0) 
{
 print '<script language="Javascript" type="text/javascript">
        alert("'.$error.'");
        history.back();
        </script>';                     

}

ainda nao funcionou!

$error = 0;
if (empty($nome)) {
	$error = "Preencha seu nome.";
}elseif (empty($email)) {
	 $error = "Preencha seu nome.";	
}elseif (empty($cpf)) {
	 $error = "Preencha seu CPF ou CNPJ.";	
}elseif (isset($estado)) {
	 $error = "Selecione seu estado.";
}elseif (isset($cidade)) {
	 $error = "Selecione sua cidade.";
}elseif (empty($telefone)) {
	 $error = "Preencha seu telefone.";
}elseif (empty($mensagem)) {
	$error = "Preencha sua mensagem.";
}elseif ($error == 0){
include ("orcamento/enviar.php"); 
}

ainda continua o mesmo erro

Notice: Undefined index: cidade in /home/marfmaqc/public_html/site.php on line 283

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom agora eu fiz assim

$error = 0;
if (empty($nome)) {
	$error = "Preencha seu nome.";
}elseif (empty($email)) {
	 $error = "Preencha seu nome.";	
}elseif (empty($cpf)) {
	 $error = "Preencha seu CPF ou CNPJ.";	
}elseif (empty($estado)) {
	 $error = "Selecione seu estado.";
}elseif (empty($cidade)) {
	 $error = "Selecione sua cidade.";
}elseif (empty($telefone)) {
	 $error = "Preencha seu telefone.";
}elseif (empty($mensagem)) {
	$error = "Preencha sua mensagem.";
}elseif ($error == 0){
include ("orcamento/enviar.php"); 
}


if ($error != 0) {
	echo '<script language="Javascript" type="text/javascript">
alert("$error");
history.back();
</script>';			

	}

mas ainda nao aparece o alert e aparece esse erro

Notice: Undefined index: cidade in /home/marfmaqc/public_html/site.php on line 283

 

 

veja se você nao defini um alert nao vai mostra alerta nenhum:

 

if(empty($variavel)){
 echo "<script>alert('Informe o campo tal');top.location.href=\"caminho de volta.php\";</script>";
}

 

se você nao der echo nao vai printa(mostra) nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

E você só tem essa variável chamada cidade ? não tem como dar erro...

pior que nao tem! =s

 

Bom dizemos que agora eu digitei tudo certo no formulario!

ai aparece esses erros e nao envia o email:

Warning: require(orcamento/enviar.php) [function.require]: failed to open stream: No such file or directory in /home/marfmaqc/public_html/site.php on line 326

Warning: require(orcamento/enviar.php) [function.require]: failed to open stream: No such file or directory in /home/marfmaqc/public_html/site.php on line 326

Fatal error: require() [function.require]: Failed opening required 'orcamento/enviar.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/marfmaqc/public_html/site.php on line 326

meu codigo para eviar o email e o autenticado

<?php

session_start();
// Cria variáveis ************
$nome = $_POST['nome'];
$email = $_POST['email'];
$empresa = $_POST['empresa'];
$cpf = $_POST['cpf'];
$inscricao = $_POST['inscricao'];
$estado = $_POST['estado'];
$cidade = $_POST['cidade'];
$site = $_POST['site'];
$telefone = $_POST['telefone'];
$mensagem = $_POST['mensagem'];
//$formnome = $_POST['nome']; // dados vindos do contato.php
//$formemail = $_POST['email'];
//$formassunto = $_POST['assunto']; // dados vindos do contato.php
//$formdesc = $_POST['desc']; // dados vindos do contato.php

require ("alterar_esse_arquivo.php"); // pega os dados personalizados desse arquivo

require("class.phpmailer.php"); // envio de e-mail com autenticacao do provedor

$mail = new PHPMailer(); // envodo de email com autenticacao do provedor
$mail->SetLanguage("br", "language/");
$mail->IsSMTP();

//Cria PHPmailer class
$mail->From = $email; //email do remetente
$mail->FromName = $nome; //Nome de formatado do remetente
$mail->Host = "$smtp_endereco"; //Pegando dados do alterar_esse_arquivo.php
$mail->Mailer = "smtp"; //Usando protocolo SMTP
$mail->AddAddress("$seu_email"); //pegando dados do alterar_esse_arquivo.php
$mail->Subject = "Orcamento Marfmaq via site";

//Assunto do email
$mail->Body = "Empresa: $empresa</br> CPF/CNPJ: $cpf</br>  Insc. Estadual: $inscricao</br>Estado: $estado </br>Cidade: $cidade</br> Nome: $nome </br>Email : $email </br>Website: $site</br> Telefone: $telefone</br></br> Mensagem: $mensagem";  //Body of the message assunto que veio do from.htm

//SMTP
$mail->SMTPAuth = true;
$mail->Username = "$usuario_smtp"; 
$mail->Password = "$senha_smtp"; 

//Verifica se email sera enviado
if(!$mail->Send())
{ //Checa erros no envo do email
echo "<script>alert('Ocorreram erros ao enviar email');location.href='../site.php?id=orcamento';</script>"; //Imprime mensagem de que email nào foi enviado
exit; 
}
else
{
echo "<script>alert('Orçamento enviado com sucesso!');location.href='../site.php?id=orcamento';</script>";
exit; 
}

?>

acredito que o erro é no require

require ("orcamento/enviar.php");

qual eu devo utiliza para haver trocas de dados

require, require_once include entre outros?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pude verificar que seu html não está legal.

Onde você colocou:

<label>Estado*:</label><select id="estado" name="estado"></select> <br />
<label>Cidade*:</label><select id="cidade" name="cidade"></select> <br />

 

O jeito mais correto seria:

<label>Estado*:</label>
<select id="estado" name="estado">
 <option value="nome do estado">nome do estado</option>
</select> <br />
<label>Cidade*:</label>
<select id="cidade" name="cidade">
 <option value="nome da cidade">Nome da cidade</option>
</select> <br />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso meu amigo, seu script está cheio de problemas... é bom você da uma estudada sobre tratamento de erros :seta: http://forum.imasters.com.br/topic/229485-tratamento-de-erros/ :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pude verificar que seu html não está legal.

Onde você colocou:

<label>Estado*:</label><select id="estado" name="estado"></select> <br />
<label>Cidade*:</label><select id="cidade" name="cidade"></select> <br />

 

O jeito mais correto seria:

<label>Estado*:</label>
<select id="estado" name="estado">
 <option value="nome do estado">nome do estado</option>
</select> <br />
<label>Cidade*:</label>
<select id="cidade" name="cidade">
 <option value="nome da cidade">Nome da cidade</option>
</select> <br />

Bom essa campo é pelo javascript que completa as cidades!

acredito nao ser esse o problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for uma validação simples você pode usar o HTML mesmo!

 

Com a opção REQUIRED

 

Ex.:

<input type="text" name="email" value="" placeholder="Insira seu nome" required/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera resolvi o erroooooooooooooooooo!

o problema é que eu tava colocando as condicoes na pagina errado,

no caso na mesma do formulario! eu tinha que colocar no enviar.php

que é o arquivo queautentica o email

mas agradeço a todos vcs pela paciencia!

obgg e pode fechar

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.