Ir para conteúdo

Arquivado

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

jamersondr

Problema com submit.

Recommended Posts

Eu tenho um sistema para recuperação de senha perdida, configurei um smtp do gmail, o email é enviado para o email informado no form. Só que estou tendo um problema: quando o email do usuário é do gmail o email chega certinho e quando o usuário clica no botão "Atualizar Meus Dados" é redirecionado para a página correta. Mas quando o email do usuário é do hotmail, o botão não faz nada, além das palavras que possuem acentuação não aparecem corretamente. No gmail tudo funciona conforme o planejado. O que pode ser?

Abaixo está o código:

<!DOCTYPE HTML>

<html lang="br" class="no-js">

<head>

<meta charset="utf-8">
<title>Sistema de Login e Senha Criptografados</title>
<link href="../style.css" rel="stylesheet" />

</head>

<body>

<div id="conteudo">

<h1>Sistema de login e senha criptografados - Verificando Informações</h1>

<div class="borda"></div>

<?php
include "conexao.php";

//Praticamente faço as mesmas validações que fizemos para o cadastrado do usuário no banco de dados.
//Recebendo os dados e tratando os mesmos para inserção no banco
$recebeEmail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$confereEmail = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_MAGIC_QUOTES);

//Nesse if, faço uma conferência em relação ao e-mail informado. Se não for informado nenhum, retorno a mensagem para que o usuário informe corretamente
if ($recebeEmail == NULL ) {
echo "<p>O endereço de e-mail precisa ser informado!";
echo "<p><a href='javascript:history.back();'>Voltar</a></p>";
return false;
}

//Aqui faço a segunda parte da verificação: vejo se no endereço de e-mail foi utilizado algum caractere especial
//Isso serve para evitar uma possível invasão sql no banco de dados, possibilitando assim a proteção e integridade dos dados
//Nesse caso, eu comparo os nomes. Se forem iguais, após passarem pelos filtros, eu inicio a criptografia. Se não forem, peço que volte à página anterior
else if ($recebeEmail != $confereEmail) {
echo "<p>Você informou o seguinte endereço de e-mail: <strong>$confereEmail</strong> .</p>";
echo "<p>Por favor, não utilize caracteres especiais (tais como aspas simples ou duplas e/ou barras!) no campo <strong>Informe o E-mail</strong>.</p>";
echo "<p><a href='javascript:history.back();'>Volte</a> para a página anterior e tente novamente! Obrigado!</p>";
return false; 
}
/*
Agora vamos consultar no banco de dados para ver se existe realmente esse cadastro
Vamos verificar ambos os dados: E-mail e ainda se o campo "ATIVO" está setado como SIM
*/ 
else{
$consultaInformacoes = pg_query($dbconn, "SELECT * FROM usuarios.usuario WHERE email = '$recebeEmail' AND ativo = 'SIM'") or die (pg_last_error());
$verificaInformacoes = pg_num_rows($consultaInformacoes);

if ($verificaInformacoes == 1){
echo "<p>O e-mail informado (<strong><em>$confereEmail</em></strong>) consta de nossa base de dados.</p>
<p>Acesse sua caixa de entrada. Se a mensagem não for encontrada, verifique se não está na caixa de spam!</p>";
	
	include('PHPMailer/PHPMailerAutoload.php');
	$mail = new PHPMailer();

	/* #########################
	* # CONFIGURAÇÕES BÁSICAS #
	* #########################
	*/
	$assunto = "..:: Recuperação de dados ArcGIS::..";
	$mensagem = utf8_decode('
<hr />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Recuperação de Dados</title>
<style type="text/css">
<!--
.style1 {
font-family: "Trebuchet MS", Arial;
font-size: 16px;
color: #FFFFFF;
}
.style4 {
font-family: "Trebuchet MS", Arial;
font-size: 12px;
color: #333333;
font-weight: bold;
}
-->
</style></head>

<body>
<form method="post" action="http://seudominio.com.br/novo/senha/exclusivo/atualizaInformacoes.php">
<fieldset>
<legend>Recuperação de Dados de Acesso</legend>
<label for="informacao">Para recuperar seus dados, clique no botão "Atualizar Meus Dados"!</label>
<input type="hidden" name="confereEmail" value="'.$confereEmail.'" /><br />
<input type="submit" value="Atualizar Meus Dados" />
</fieldset>
</form>
</body>
</html>

<hr />');
	$seu_email = 'seuemail@gmail.com';
	$seu_nome = 'seunome';
	$sua_senha = 'suasenha';
	 
	/* Se for do Gmail o servidor é: smtp.gmail.com */
	$host_do_email = 'smtp.gmail.com';
	 
	/* Configura os destinatários (pra quem vai o email) */
	$mail->AddAddress($recebeEmail);
	// $mail->AddAddress('email@email.com');
	// $mail->AddCC('email@email.com', 'Nome da pessoa'); // Copia
	// $mail->AddBCC('email@email.com', 'Nome da pessoa'); // Cópia Oculta
	 
	/* ###########################
	* # CONFIGURAÇÕES AVANÇADAS #
	* ###########################
	*/
	
	/* Mostra o erros*/
	$email->SMTPDebug = 2;
    /* Define que é uma conexão SMTP */
	$mail->IsSMTP();
	/* Define o endereço do servidor de envio */
	$mail->Host = $host_do_email;
	/* Utilizar autenticação SMTP */
	$mail->SMTPAuth = true;
	/* Protocolo da conexão */
	$mail->SMTPSecure = "tls";
	/* Porta da conexão */
	$mail->Port = "587";
	/* Email ou usuário para autenticação */
	$mail->Username = $seu_email;
	/* Senha do usuário */
	$mail->Password = $sua_senha;
	 
	/* Configura os dados do remetente do email */
	$mail->From = $seu_email; // Seu e-mail
	$mail->FromName = $seu_nome; // Seu nome
	 
	/* Configura a mensagem */
	$mail->IsHTML(true); // Configura um e-mail em HTML
	 
	/*  
	* Se tiver problemas com acentos, modifique o charset
	* para ISO-8859-1  
	*/
	$mail->CharSet = 'UTF-8'; // Charset da mensagem (opcional)
	 
	/* Configura o texto e assunto */
	$mail->Subject  = $assunto; // Assunto da mensagem
	$mail->Body = $mensagem; // A mensagem em HTML
	$mail->AltBody = trim(strip_tags($mensagem)); // A mesma mensagem em texto puro
	 
	/* Configura o anexo a ser enviado (se tiver um) */
	//$mail->AddAttachment("foto.jpg", "foto.jpg");  // Insere um anexo
	 
	/* Envia o email */
	$email_enviado = $mail->Send();
	 
	/* Limpa tudo */
	$mail->ClearAllRecipients();
	$mail->ClearAttachments();
	 
	/* Mostra se o email foi enviado ou não */
	if ($email_enviado) {
		echo "Email enviado!";
	} else {
		echo "<p>Endereço de e-mail informado não consta em nossa base de dados. Por favor, <a href='javascript:history.back();'>volte</a> e tente novamente!</p>";
	}
}
else {

//Se nenhuma das confirmações acima foram efetuadas, mais uma vez, retorno uma mensagem de erro ao usuário.
echo "<p>Endereço de e-mail informado não consta em nossa base de dados. Por favor, <a href='javascript:history.back();'>volte</a> e tente novamente!</p>";
}
}
?>

</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,

 

Acredito que vc deva postar sua dúvida na área de PHP e não em CSS como fez.

 

Peça para os Moderadores mover seu tópico.

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.