Ir para conteúdo

Arquivado

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

First

Sistema esqueci minha senha

Recommended Posts

Já dei uma olhada e nada me ajudou já pesquisei no google já olhei vários vídeos mais nada que de certo

Eu quero que vocês me explique como posso fazer um sistema com DATETIME envia um e-mail para o usuário que esqueceu a senha com um código com o tempo de 24horas para o código expirar

 

 

Alguém me ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não eu preciso fazer o código por completo pois eu nem sei ainda por onde começa e como começar...

 

Pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Desculpe o duble post, mais eu conseguir fazer o sistema que eu queria mais tem uns erros que não conseguir resolver, então preciso da ajuda de vocês mais uma vez.

 

o erro é este:

( ! ) Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\esqueci\index.php on line 32

 

aqui esta a minha linha 32
if(mail("$email", "Assunto", "$mensagem", $headers, "-f$email_remetente")){
				echo 'Enviamos um e-mail com um link para recuperação de senha, para o endereço de e-mail informado!';
			}

Alguém me ajuda por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas para você ter uma idéia, pois o Token tem método melhor para se fazer

$token = base64_encode($linha['email']);
$data_expirar = date('Y-m-d H:i:s', strtotime('+1 hours'));

Depois da um INSERT
Na página de redefinir a senha pega o Token pelo GET e da um decode

No SELECT faz assim

("SELECT * FROM `tokens` WHERE token = '$token' AND data > NOW()")

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo isso eu já fiz eu tenho aqui tudo certinho só que deu o erro que eu informei acima e não estou sabendo resolver

<?php
	if(isset($_POST['acao']) && $_POST['acao'] == 'recuperar'):
		$email = strip_tags(filter_input(INPUT_POST, 'emailRecupera', FILTER_SANITIZE_STRING));
		
		$verificar = mysql_query("SELECT `email` FROM `usuarios` WHERE email = '$email'");
		if(mysql_num_rows($verificar) == 1){
			$codigo = base64_encode($email);
			$data_expirar = date('Y-m-d H:i:s', strtotime('+1 day'));
			
			$mensagem = '<p>Recebemos uma tentativa de recuperação de senha para este e-mail, caso não tenha sido você,
						desconsidere este e-mail, caso contrário clique no link abaixo<br/> 
						<a href="http://localhost/esqueci/recuperar.php?codigo='.$codigo.'">Recuperar Senha</a></p>';
			$email_remetente = 'teste@teste.com.br';
			
			$headers = "MIME-Version: 1.1\n";
			$headers .= "Content-type: text/html; charset=iso-8859-1\n";
			$headers .= "From: $email_remetente\n";
			$headers .= "Return-Path: $email_remetente\n";
			$headers .= "Reply-To: $email\n";
			$inserir = mysql_query("INSERT INTO `codigos` SET codigo = '$codigo', data = '$data_expirar'");
			if(mail("$email", "Assunto", "$mensagem", $headers, "-f$email_remetente")){
				echo 'Enviamos um e-mail com um link para recuperação de senha, para o endereço de e-mail informado!';
			}
		}
	endif;
?>

Alguém me ajuda?

 

 

Meu problema e o PHP mail na port 25 não envia o email

 

 

alguém me ajuda por favor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque isso no seu codigo

 

ini_set('smtp_port', '25'); onde 25 é a porta que seu provedor usa para enviar emails

 

 

você tem que trocar 25 pela porta que seu provedor usa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu esse erro

Warning: mail(): Failed to connect to mailserver at "localhost" port 587, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\esqueci\index.php on line 34

 

 

Oque eu faço agora?

 

Alguém ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

seu site está hospedado onde?


eu fiz um sistema parecido, testei não deu nenhum erro depois não consegui testá-lo novamente pois o provedor gratuito hostinger é uma m*****, acho que esse site é só pra roubar informações


verifique com seu provedor qual usar

Compartilhar este post


Link para o post
Compartilhar em outros sites

localhost não funciona mesmo amigo você vai tentar uma eternidade hehehehe


tente um provedor gratuito só pra testá-lo

 

mas sobe somente os arquivos de enviar emails, pois muitos provedores gratuitos são sacanas e são somente para roubar scripts

Compartilhar este post


Link para o post
Compartilhar em outros sites

que eu saiba não


tente ver isso

 


faça backup do seu sistema caso dê algo errado encontrei esse link na net e vou tentar tb

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?phpinclude("../Connections/config.php");//pega a variavel via post$email = $_POST['email'];//busca no db o usuario com o email $result = mysql_query("SELECT * FROM amp_usuarios WHERE amp_email='$email'");//conta quantos tem$num_rows = mysql_num_rows($result);//se tiver + de 1 cadastradoif($num_rows=='1'){ //faz um while para vc coloar os dados nas variavels while($Row_email = mysql_fetch_array($result)){ $rowemail = $Row_email['email']; $rowsenha = $Row_email['senha']; } //enviar um email para variavel email juntamente com a variável senha;$mensage ="Você solicitou a recuperação de senhha confira seu dados.";$mensage .="E-mail= " . $rowemail;$mensage .="Senha:" . $rowsenha;mail($rowemail, "Ampola Comunicações, recuperação de senha", $mensage);echo"<script>alert(Sua senha foi enviada para o e-mail indicado.),window.open('recuperar_senha_enviado.php','_self')</script>";}else{ echo"<script>alert('E-mail não cadastrado em nosso sistema'),window.open('recuperar_senha.php','_self')</script>"; }?>

 

achei esse ai na net e mais dificel fazer com data time de tempo para checagem .

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal é só configurar o php.ini

 

assim

 

[mail function]

; For Win32 only.

;SMTP = localhost

SMTP = smtp.seuprovedor.com.br

smtp_port = 25 aqui a porta do seu provedor de emails



; For Win32 only.

;sendmail_from = seuemail@seuprovedor.com.br

sendmail_from = trialkey


alguém conseguiu? o meu não deu nenhum erro, porém não recebi o email

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.