Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 87
Sexo: Masculino

Sistema de recuperação de senha MD5

02-06-2011 07:41

Bom dia

Alguém tem algum script ou tutorial para criar um formulario de recuperação de senha gravada na BD com encriptação MD5?

Obrigado
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17659
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de recuperação de senha MD5

02-06-2011 07:59

Não se pode recuperar uma senha MD5, ou seja, descriptografar, o que pode ser feito é atualizar a senha com uma nova.

Você pode enviar um email para o usuário para que ele clique em um link para atualizar a senha.

Esses dois posts abaixo vão te dar uma idéia
Recuperar-senhas-md5-nocao-basica_15_1085.html
Alterar-senha-criptografada-md5-no-bd_19_5774.html

MOVIDO: de PHP para MySQL
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 87
Sexo: Masculino

Sistema de recuperação de senha MD5

02-06-2011 08:05

Eu não fiz bem a pergunta ... MD5 de facto não dá para recuperar. Vou verificar os links.

Tks ;)
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17659
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de recuperação de senha MD5

02-06-2011 08:15

Apesar que um site já fez um esquema que dá para recuperar. Funciona assim, a pessoa pode entrar com uma palavra no formulário, essa palavra é gravada no bd junto com o MD5 da mesma. Como muitas pessoas devem cadastrar palavras, a pessoa pode tentar entrar com o MD5, e pode dar a sorte de que alguém já tenha entrado aquela palavra no BD, assim, recupera a senha.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 87
Sexo: Masculino

Sistema de recuperação de senha MD5

02-06-2011 11:25

Amigo, só uma dúvida. O sistema AES_ENCRYPT é melhor ou é preferível usar MD5? Eu queria uma forma simples e segura de registar ou de recuperar a pass.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17659
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de recuperação de senha MD5

02-06-2011 13:00

O AES_ENCRYPT permite descriptografar a senha com o AES_DECRYPT(), então, pode ser um pouco vulnerável.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 87
Sexo: Masculino

Sistema de recuperação de senha MD5

02-06-2011 15:30

Então o melhor será mesmo algo que reescreva a senha em MD5... Vou tentar fazer isso.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17659
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de recuperação de senha MD5

02-06-2011 18:29

Sim, é bem mais seguro usar o MD5, qualquer dúvida só postar.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 87
Sexo: Masculino

Sistema de recuperação de senha MD5

03-06-2011 12:42

Boa tarde amigo. Tou a tentar fazer o sistema de troca de pass md5 e alguma coisa me está a escapar. Não consigo receber dados num formulário e ainda nã percebi porque!
Consigo gravar atribuido valor às variavies, mas se as passar por POST ou sessão não têm nenhum valor. Não consigo detectar o erro!

Ainda tem o projecto?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17659
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de recuperação de senha MD5

03-06-2011 12:44

Qual projeto?

Posta ai seu código de envio e recebimento dos valores enviados.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 87
Sexo: Masculino

Sistema de recuperação de senha MD5

03-06-2011 13:02

O meu problema está aqui!!!

pergunta.php

<? session_start();//início de sessão ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <style type="text/css" media="screen">@import url('css/estilos.css');</style> <!-- Estilos gerais CSS --> <meta content="pt" http-equiv="Content-Language"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title>Infor@Math</title> </head> <body> <br><br> <div> <br><br><span class="style2">Serviço de recuperação de password</span><br> <hr class="barra"> <form action="autenticamostra.php" method="post" enctype="multipart/form-data" name="formlembrar"> <table class="lembra" align="center"> <tr> <td colspan="2" class="style2" style="height: 74px; width: 290px;"><font color="navy"><br> <span class="style2" lang="pt">Pergunta Secreta</span><br><br><a href="index.php">Home</a> <a href="lembrar.php">Voltar</a></font><br><br></td></tr> <tr> <td lang="pt" style="height: 42px; width: 76px;"><br><span lang="pt">Resposta</span></td> <td class="centrargeral"><br><input name="resposta" type="text" style="width: 200px" id="resposta" maxlength="30" size="30"><br></td></tr> <tr> <td lang="pt" style="width: 76px"> <br> <span lang="pt">Login:</span></td><td class="centrargeral"> <br> <input name="login" type="text" style="width: 200px" id="login" maxlength="30" size="30" class="auto-style6"><br></tr> <tr> <td colspan="2" class="centrargeral"><br> <input name="Confirmar" type="submit" value="Confirmar" class="btn"><br></td></tr> </table> </form> </div> </body> </html>

autenticamostra.php
<? include 'config/clsAutenticar.php'; $login = ($_POST['login']); $resposta = ($_POST['resposta']); echo "login $login"; echo "resposta $resposta"; $res = new clsAutenticar(); $log = mysql_real_escape_string($login); $dados=$res->ExistDadosResposta($log); $level=$res->ExistLogin($log); while($row = mysql_fetch_array($level)) { if ($dados==1) { $login=$_SESSION['login'];//Sessão do login header ("Location: mostrar.php"); } else { echo "<font color=red>Erro na autenticacao!<BR>Utilizador:<b><font color=black> " .$log. "</b></font><BR>INVALIDO!<BR>ou utilizador nao esta activado. Tente novamente.</font>"; echo "<br>Volte para a <a href =\"index.php\">pagina de autenticacao </a><br>"; } } ?>

mostrar.php
<? session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script language="javascript" type="text/javascript" src="js/validarpass.js"></script> <link rel="shortcut icon" href="favicon.ico"> <style type="text/css" media="screen">@import url('css/estilos.css'); </style> <!-- Estilos gerais CSS --> <meta content="pt" http-equiv="Content-Language"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title>Infor@Math</title> </head> <body> <br><br> <div> <br><br><span class="style2">Serviço de recuperação de password</span><br> <hr class="barra"> <?php // inclui o arquivo de configuração do sistema include_once 'config/clsRegistar.php'; // recebe dados do formulario $login=$_SESSION['login'];//Sessão do login $resposta = ($_POST['resposta']);//valor recebido resposta $res = new clsRegistar(); $dados=$res->ExistLoginPass($login); while($linha = mysql_fetch_object($dados)) { // verifica se a resposta é verdadeira if($resposta == $linha->resposta) { ?> <form action="registopass.php" method="post" enctype="multipart/form-data" name="formulario" onload="validar()"> <table align="center" class="auto-style5"> <tr> <td align="center" class="style2" colspan="2"><font color="navy"><br> <span class="style2" lang="pt">Mudar password</span><br><br><a href="index.php">Home</a></font><br><br></td></tr> <tr> <td style="width: 128px" class="style6">Nome</td><td style="width: 266px"><input name="nome" type="text" id="nome" value="<?php echo $linha->nome;?>" size="40" maxlength="200"></td></tr> <tr> <td style="width: 128px; height: 22px;" class="style6">Login</td> <td style="width: 266px; height: 22px;"><input name="login" type="text" id="login" value="<?php echo $linha->login;?>" size="40" maxlength="200"></td></tr> <tr> <td style="width: 128px" class="style6">Nova Password</td> <td style="width: 266px"><input name="password" type="password" id="password"size="40" maxlength="200"></td></tr> <tr> <td style="width: 128px" class="style6">Repita Password</td> <td style="width: 266px"><input name="password1" type="password" id="password1" size="40" maxlength="200"></td></tr> <td colspan="2" lang="pt" class="centrargeral"><br><input name="Confirmar" type="submit" value="Alterar" class="btn"></td> </table> </form> <?php } else { echo "<font color=red><b>A resposta à pergunta está errada!</font></b>"; } } ?> </div> </body> </html>

O problema é que não recebo os valores de login e resposta! Se colocar manualmente, consigo registar

Mias código que pode fazer falta:

clsautenticar.php
<?php include_once('clsConexaoBD.php'); class clsAutenticar { private $clsConexao; function __construct() { $this->clsConexao= new clsConexaoBD(); } function ExistDados($login,$password) { $sql="SELECT * FROM registo WHERE login='$login' AND password='$password' AND activa= 'A' "; if(mysql_num_rows($this->clsConexao->execSQLQuery($sql))) { return (1); } else { return (0); } } function ExistDadosLembra($login) { $sql="SELECT * FROM registo WHERE login='$login' AND activa= 'A' "; if(mysql_num_rows($this->clsConexao->execSQLQuery($sql))) { return (1); } else { return (0); } } function ExistDadosResposta($login) { $sql="SELECT * FROM registo WHERE login='$login' AND activa= 'A' "; if(mysql_num_rows($this->clsConexao->execSQLQuery($sql))) { return (1); } else { return (0); } } function ExistLogin($login) { $sql="SELECT * FROM registo WHERE login='$login'"; return($this->clsConexao->execSQLQuery($sql)); } function getDadosalunos() { if ($fieldorder=="") { $fieldorder=$login; } $sql="SELECT * FROM aluno"; $query = ($this->clsConexao->execSQLQuery($sql)); $total=mysql_fetch_array($query); return $total; } function getDadosescolas() { if ($fieldorder=="") { $fieldorder=$login; } $sql="SELECT * FROM escola"; $query = ($this->clsConexao->execSQLQuery($sql)); $total=mysql_fetch_array($query); return $total; } } ?>

clsregistar.php
<?php include_once('clsConexaoBD.php'); class clsRegistar { private $clsConexao; function __construct() { $this->clsConexao= new clsConexaoBD(); } function InsertDados($dados) { // Dividir o Array dentro de $dados em Chaves e Valores $campos = array_keys($dados); $valores = array_values($dados); $sql=("INSERT INTO registo (".implode(', ', $campos).") VALUES ('" . implode('\', \'', $valores) . "')"); $this->clsConexao->execSQLOperation($sql); if($sql) { return (1); } else { return (0); } } function InsertReg($tipo,$nome,$ano,$turma,$login,$password,$cod_GEPE,$morada,$postal,$localidade,$professor,$email,$email_escola,$pergunta,$resposta,$nivel,$activa) { $sql="insert into registo values ('NULL','$tipo','$nome','$ano','$turma','$login','$password','$cod_GEPE','$morada','$postal','$localidade','$professor','$email','$email_escola','$pergunta','$resposta','$nivel','$activa')"; if(mysql_query($this->clsConexao->execSQLOperation($sql))) { return (1); } else { return (0); } } function InsertJogo($login,$jogo,$pontuacao,$tempo,$cod_GEPE,$hora) { $sql="insert into jogo values ('NULL','$login','$jogo','$pontuacao','$tempo','$cod_GEPE','$hora')"; if(mysql_query($this->clsConexao->execSQLOperation($sql))) { return (1); } else { return (0); } } function ExistLogin($login) { $sql="SELECT * FROM registo WHERE login='$login'"; if(mysql_num_rows($this->clsConexao->execSQLQuery($sql))) { return 1; } else { return 0; } } function ExistLoginPass($login) { $sql="SELECT * FROM registo WHERE login='$login'"; return($this->clsConexao->execSQLQuery($sql)); } function getAllRegistos($fieldorder) { if ($fieldorder=="") { $fieldorder="login"; } $sql="SELECT * FROM registo ORDER BY $fieldorder"; return($this->clsConexao->execSQLQuery($sql)); } function getRegistosRow() { $sql="SELECT * FROM registo"; $query = ($this->clsConexao->execSQLQuery($sql)); $total=mysql_num_rows($query) or die ("".mysql_error()); return $total; } function ExistDados() { $sql="SELECT * FROM registo"; return($this->clsConexao->execSQLQuery($sql)); } function ExistDadosEscolas() { $sql="SELECT * FROM registo WHERE tipo='E' AND activa='N'"; return($this->clsConexao->execSQLQuery($sql)); } function DeleteUser($login) { $sql="DELETE FROM registo WHERE login = '$login'"; if($this->clsConexao->execSQLOperation($sql)) { return 1; } else { return 0; } } function ActivaUser($login) { $sql="UPDATE registo SET activa='A' WHERE login='$login'"; return (mysql_query($this->clsConexao->execSQLOperation($sql))); } function TotalRowUser() { $sql="SELECT * FROM registo"; return(mysql_num_rows($this->clsConexao->execSQLQuery($sql))); } function mudaPass($login,$password) { $sql = "UPDATE registo SET password=('$password') WHERE login='$login'"; return (mysql_query($this->clsConexao->execSQLOperation($sql))); } } ?>

Muito código :$

Obrigado
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17659
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de recuperação de senha MD5

03-06-2011 14:56

Login e resposta devem estar definidos assim no documento autenticamostra.php

$login = $_POST['login'];
$resposta = $_POST['resposta'];
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 87
Sexo: Masculino

Sistema de recuperação de senha MD5

04-06-2011 09:31

Agradecido pela resposta, mas continua igual. :?:
0
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 87
Sexo: Masculino

Sistema de recuperação de senha MD5

04-06-2011 09:33

Notice: Undefined variable: login in C:\xampp\htdocs\web3\web\mostrar.php on line 23
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17659
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de recuperação de senha MD5

04-06-2011 09:39

Está dizendo que não está chegando login na página

<input type="text" name="login" value="..."

O que tem nessa linha que aponta o erro?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 87
Sexo: Masculino

Sistema de recuperação de senha MD5

04-06-2011 10:13

É correcto fazer o que faço em autenticamostra.php
$login = $_POST['login']; $resposta = $_POST['resposta']; $res = new clsAutenticar(); $log = mysql_real_escape_string($login); $dados=$res->ExistDadosResposta($log); $level=$res->ExistLogin($log); while($row = mysql_fetch_array($level)) { if ($dados==1) { $login=$_SESSION['login'];//Sessão do login header ("Location: mostrar.php"); } . . .

e fazer basicamente o mesmo em mostrar.php mas usando outra classe?

Não sei se o problema estará aqui!!!

$login=$_SESSION['login'];//Sessão do login $resposta = $_POST['resposta'];//valor recebido resposta $res = new clsRegistar(); $dados=$res->ExistLoginPass($login); while($linha = mysql_fetch_object($dados)) { // verifica se a resposta é verdadeira if($resposta == $linha->resposta) {

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17659
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de recuperação de senha MD5

04-06-2011 10:17

Não dá para avaliar assim, só vendo a chamada da class. Mas, em questão de validação, é costume validar login e senha, ou seja, verifica os dados do formulário direto na query, ex.:

... WHERE login='$login' and senha='$senha'

Se o resultado for ok, cria-se as SESSIONS para login e senha.

Essas 2 SESSIONS são usadas para dar acesso ao usuário, em uma nova query em cada página protegida.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado