Ir para conteúdo

POWERED BY:

Arquivado

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

igorfds

Não apagar conteúdo digitado no formulario!

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

 

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

×

Informação importante

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