igorfds 2 Denunciar post Postado Abril 10, 2013 Coloquei um alert quando os caracteres digitados não são válidos no captcha, e o problema é que após aparecer o alert e voltar para o formulário, as informações digitas são apagadas... o que faço? <?php if (isset($_POST['submit1'])){ require_once('scripts/recaptchalib.php'); $privatekey = "6Lcpod8SAAAAAJTIL6awjArO9en8mHflrs6-BXqU"; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { echo "<script>alert('Erro de verificação!'); window.location=\"http://ohmsapoio.com.br/2.0/templates/contato.php\"</script>"; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Abril 10, 2013 Inclua um if, echo no value para capturar os valores digitados. Quando houver um submit mesmo ocorrendo um erro na validação os campos já alimentados permanecerão. <form> <input type="text" name="email" value="<?php if($email) echo($email); ?>"/> </form> Compartilhar este post Link para o post Compartilhar em outros sites
Edgard Hufelande 27 Denunciar post Postado Abril 10, 2013 Não precisa do if, se houver ele vai adicionar, caso o contrário ele irá imprimir em branco o que daria no mesmo. c: pasta um <?=$email?> // Isso já resolveria. Compartilhar este post Link para o post Compartilhar em outros sites
ThiagoMaia 0 Denunciar post Postado Abril 10, 2013 Quando voce poe um window.location, ele te MANDA para a página, e não VOLTA para a página... ou seja, ele recarrega a mesma... coloca um go.back(-1) e daí fechou... Eu to considerando que voce colocou esse verificador em uma página separada. Se, no caso, estiver na mesma página do form, daí nao tem o pq de ter essa parte do código... window.location=\"http://ohmsapoio.com.br/2.0/templates/contato.php\" vc tem que colocar um return no onsubimit ou no onclick do form Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Abril 10, 2013 Vamos simplificar o IF. <input type="text" name="email" value="<?php (isset($email)) print $email : false; ?>" /> Não precisa do if, se houver ele vai adicionar, caso o contrário ele irá imprimir em branco o que daria no mesmo. SIM, precisa do IF sim. Na maioria dos casos você teria um erro de UNDEFINED INDEX email IN... Por falta de uma verificação adequada da variável. Você "depende" de configurações em seu PHP.INI para que o comando abaixo funciona: <?=$email?> // Isso já resolveria. Por tanto descartem essa opção para desenvolvimento de aplicações. Compartilhar este post Link para o post Compartilhar em outros sites
igorfds 2 Denunciar post Postado Abril 10, 2013 Acho que não expliquei direito... por isso não está funcionando com o que vcs tão me falando! Coloquei o recaptcha dentro do <form> e no envia.php coloquei os submits de erro.. Segue os 2 Form: <form action="http://ohmsapoio.com.br/2.0/templates/contato/envia.php" method="post" id="formAtendimento" name="atendimento" class="default"> <fieldset> <label for="nome"> Nome:</label> <input id="nome" name="nome" type="text" value="<?echo $nome ;?>" class="inputText large field-clear" /> <label for="email">E-mail:</label> <input id="email" name="email" type="text" value="<?echo $email ;?>" class="inputText large field-clear" /> <label for="assunto">Assunto:</label> <input id="assunto" name="assunto" type="text" value="<?echo $assunto ;?>" class="inputText large field-clear block mbottom" /> <label for="mensagem">Mensagem:</label><br /> <textarea id="mensagem" cols="60" rows="10" name="mensagem" class="inputText large field-clear"><?echo $mensagem;?></textarea> <?php require_once('contato/scripts/recaptchalib.php'); $publickey = "6Lcpod8SAAAAAAk9003Ih7Y33BHAJqR6AievlqYY"; echo recaptcha_get_html($publickey); ?> <br> <input type="submit" name="submit1" class="textBox" value="Enviar Mensagem!" style="height: 36px; width: 150px; font-size:16px;" /> </fieldset> </form> Envia: <?php if (isset($_POST['submit1'])){ require_once('scripts/recaptchalib.php'); $privatekey = "6Lcpod8SAAAAAJTIL6awjArO9en8mHflrs6-BXqU"; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { echo "<script>alert('Erro de verificação!'); window.location=\"http://ohmsapoio.com.br/2.0/templates/contato.php\"</script>"; } } ?> <?php session_start(); $formnome = $_POST['nome']; // dados vindos do contato.php $formemail = $_POST['email']; // dados vindos do contato.php $formdesc = $_POST['mensagem']; // dados vindos do contato.php require ("dados.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 = $formemail; //email do remetente $mail->FromName = $formnome; //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 = "$assunto"; //Assunto do email $mail->Body = "Nome: $formnome; E-mail: $formemail; Mensagem:$formdesc"; $mail->Subject = "Contato Através do site!"; //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('O campo EMAIL não foi digitado corretamente!'); window.location=\"http://ohmsapoio.com.br/2.0/templates/contato.php\"</script>"; exit; } else { echo "<script>alert('Mensagem enviada com sucesso!!'); window.location=\"http://ohmsapoio.com.br/2.0/templates/contato.php\"</script>"; exit; } ?> Obrigado a todos pela atenção.... Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Abril 10, 2013 Aidicione: header("Cache-Control: store, cache, no-revalidate"); header("Cache-Control: post-check=1, pre-check=1", false); header("Pragma: cache"); Na página onde se encontra o formulário. Compartilhar este post Link para o post Compartilhar em outros sites
igorfds 2 Denunciar post Postado Abril 10, 2013 Desculpe minha ignorância... mais aonde exatamente coloco e como? tentei de algumas formas aqui e nada! Aidicione: header("Cache-Control: store, cache, no-revalidate"); header("Cache-Control: post-check=1, pre-check=1", false); header("Pragma: cache"); Na página onde se encontra o formulário. Desculpe minha ignorância... mais aonde exatamente coloco e como? tentei de algumas formas aqui e nada! Aidicione: header("Cache-Control: store, cache, no-revalidate"); header("Cache-Control: post-check=1, pre-check=1", false); header("Pragma: cache"); Na página onde se encontra o formulário. Desculpe minha ignorância... mais aonde exatamente coloco e como? tentei de algumas formas aqui e nada! Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Abril 10, 2013 Amigo, preste atenção no que eu disse, COLOQUE NA SUA PÁGINA DO FORMULÁRIO ali mesmo onde se digita o login e a senha. Coloque no topo da página. Compartilhar este post Link para o post Compartilhar em outros sites
igorfds 2 Denunciar post Postado Abril 10, 2013 Não funcionou.. continua apagando o formulario! TENHA PACIÊNCIA..... rsrsr Compartilhar este post Link para o post Compartilhar em outros sites
Edgard Hufelande 27 Denunciar post Postado Abril 10, 2013 Envia os dados via Ajax, se houver erro ele não irá alterar nada no formulário. rs Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Abril 10, 2013 Sugiro então que na mesma página do form, você comece a debugar o código para ver em qual parte adicionada ele não captura para manter os dados. Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Abril 10, 2013 Só não funciona com você... aqui funciona. :joia: Além disse, você tem que utilizar o seguinte amigo: if (!$resp->is_valid) { echo "<script>alert('Erro de verificação!'); history.back();</script>"; } Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Abril 11, 2013 Analisando bem seu código <?echo $nome ;?> falta um espaço entre <? e o echo em todos os seus value="" considere usar <?php Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 11, 2013 o modo mais seguro é salvar os dados postados em session.. quando retornar ao form por algum motivo, verifique a session e abstraia os dados re-preenchendo o form... Compartilhar este post Link para o post Compartilhar em outros sites
igorfds 2 Denunciar post Postado Abril 11, 2013 Só não funciona com você... aqui funciona. :joia: Além disse, você tem que utilizar o seguinte amigo: if (!$resp->is_valid) { echo "<script>alert('Erro de verificação!'); history.back();</script>"; } AGooooraaa sim tá funcionando! rsrs Brigadão viu! Analisando bem seu código <?echo $nome ;?> falta um espaço entre <? e o echo em todos os seus value="" considere usar <?php Obrigado pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Abril 11, 2013 AGooooraaa sim tá funcionando! rsrs Brigadão viu! Obrigado pela ajuda! Se resolveu então feche o tópico para organizar o forum Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Abril 11, 2013 OK, o go-1 retorna a página, e o history.back retorna com o histórico anterior. Compartilhar este post Link para o post Compartilhar em outros sites