GARANTIR DESCONTO

Fórum recuperar senha e enviar por email php #585399

29/08/2017

0

Gente, em um form estou enviando email e senha pro script seguinte, mas ele diz que o email n foi encontrado. Alguém pode me dizer o porquê isso ta acontecendo ?

<?php
include "conexao.php";


$email = $_POST['email'];
$senha = $_POST['senha'];
//busca no db o usuario com o email
$result = pg_query("SELECT * FROM users WHERE user_login='$email'");

$num_rows = pg_num_rows($result);

if($num_rows=='1'){

while($Row_email = pg_fetch_array($result)){
$rowemail = $Row_email['email'];
$rowsenha = $Row_email['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.)</script>";


}else{
echo"<script>alert('E-mail não cadastrado em nosso sistema')</script>";

}


?>
Gmdkr

Gmdkr

Responder

Post mais votado

29/08/2017

Só um adendo, acredito que por segurança o ideal seria encaminhar um link para o usuário para que ele pudesse trocar a senha ao invés de enviar a senha em texto puro.

~Talvez não seja uma regra, mas é uma boa prática. :)

Wilson Neto

Wilson Neto
Responder

Gostei + 2

Mais Posts

29/08/2017

Wilson Neto

Boa noite, consegue saber o que está vindo em $num_rows?

$num_rows = pg_num_rows($result);


Caso não, faça o seguinte:
var_dump($num_rows)


E poste o resultado para gente. :)
Responder

Gostei + 1

30/08/2017

Alex William

Cara posso te dar uma ideia:

Quando eu fazia esse esquema de "esqueceu sua senha?" eu colocava na tabela um campo a mais na tabela para receber uma senha aleatoria, então mandava ele confirmar alguns dados como e-mail cadastrado e CPF e talz.

Quando ele submetia esses dados, eu usava uma função que gerava uma senha aleatoria pra ele e mandava essa senha por e-mail. Quando ele acessasse o sistema o banco verificava se a senha tinha sido redefinida pela função, se sim, ele abria um formulario pro usuario colocar uma senha nova, pra não ficar com a senha redefinida.

Era a forma que eu utilizava, é uma forma bem arcaica de fazer, mas dá certo.
Responder

Gostei + 1

30/08/2017

Gmdkr

Olha, colocar o var_dump($num_rows); não deu certo não :c
Responder

Gostei + 0

30/08/2017

Gmdkr

eu deveria mandar ele digitar uma senha nova e dar um update no banco de dados ?
Responder

Gostei + 0

30/08/2017

Wilson Neto

Olha, colocar o var_dump($num_rows); não deu certo não :c


Você consegue saber o que $num_rows ta recebendo do pg_num_rows de alguma maneira?

[url:descricao=var_dump()]http://php.net/manual/pt_BR/function.var-dump.php[/url] Ele apresenta inclusive o tipo do valor que está naquela variável, por isso comentei de postar por aqui.

A forma que Alekym mencionou é bacana.
Outra seria você gerar um token, um campo na tabela de usuário chamado token (por exemplo), dessa forma você encaminha um link para o email (quando requisitasse essa senha) e no link o token e o email, por exemplo, após acessar o link uma rotina que remova esse token assim que o usuário submeter o form com a senha nova.
Dessa forma é legal ter uma rotina que execute de tempos em tempos limpando os tokens que fossem expirados, tipo um token com duração de 24h seria removido após 24h por essa rotina. Só pra não deixar "lixo".

Bom, da pra aprimorar, é um exemplo. :)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar