Leozin 0 Denunciar post Postado Agosto 17, 2012 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
Keven Jesus_164006 39 Denunciar post Postado Agosto 17, 2012 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
Leozin 0 Denunciar post Postado Agosto 17, 2012 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
Alaerte Gabriel 662 Denunciar post Postado Agosto 17, 2012 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
Leozin 0 Denunciar post Postado Agosto 17, 2012 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
Alaerte Gabriel 662 Denunciar post Postado Agosto 17, 2012 E você só tem essa variável chamada cidade ? não tem como dar erro... Compartilhar este post Link para o post Compartilhar em outros sites
Keven Jesus_164006 39 Denunciar post Postado Agosto 17, 2012 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
Leozin 0 Denunciar post Postado Agosto 17, 2012 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
Marcos Xavier 189 Denunciar post Postado Agosto 17, 2012 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
Alaerte Gabriel 662 Denunciar post Postado Agosto 17, 2012 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
Leozin 0 Denunciar post Postado Agosto 17, 2012 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
Jorge Seiki Teruya 15 Denunciar post Postado Agosto 17, 2012 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
Leozin 0 Denunciar post Postado Agosto 17, 2012 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