забравена парола

nfs

Registered
използвам урока на mute

<form action="form.php" method="POST">
<input type="text" name="username" /><br />
<input type="text" name="email" /><br />
<input type="submit" name="submit" value="Изпрати!"/>
</form>

<?php
$link=mysql_connect('*','*','*')
or die("Не мога да се свержа с MySQL сървъра!");
mysql_query('set names cp1251', $link);
$selectdb=mysql_select_db('*')
or die("Базата данни не може да бъде избрана!");
$username=$_POST['username'];
$email=$_POST['email'];

$q="SELECT * FROM `userss` WHERE email='$email' AND username='$username' ";
$result=mysql_query($q,$link);
if(mysql_num_rows($result)<1){echo "Няма такова потребителско име и мейл в нашата база данни ";exit();}
$newpass=substr (md5(rand()), 3, 10);
$q="UPDATE `userss` SET `password`=\"".$newpass."\" WHERE `username`=\"".$username."\" ";
$up=mysql_query($q,$link);

mail ($email, 'Вашата нова парола', "Здравейте $username вапата нова парола е $newpass ", 'From: *');
echo "На вашия меил бе изпратена новата ви парола!";
?>

но на пощата новата парола се изпраща хеширана (както си е в базата данни) и после потребителя не може да се логне с тази парола
 
Вместо да взимаш от БД, генерирай нова и я изпрати, когато я записваш в БД след потвърждението от пощата пак я хешираш и готово.
 
аз не я вземам от ДБ генерира се нова която се записва в БД но на палучателя се праща в хеширан вид
 
nfs каза:
аз не я вземам от ДБ генерира се нова която се записва в БД но на палучателя се праща в хеширан вид
Пробвай така. Генерираш нова парола без да я хешираш, пращаш я на потребителя (по мейла) и ако е изпратена успешно я хешираш и UPDATE в базата данни.
 

Back
Горе