PDA

View Full Version : فراموشی رمز عبور



jalaladdin
شنبه 09 مهر 1390, 11:39 صبح
برای قسمت فراموشی رمز عبور از این کد استفاده میکنم اما پسوردی که به ایمیلم فرستاده میشود بصورت md5 میباشد یعنی همانطوری که در پایگاه ذخیره شده است وقتی همین رمز برای قسمت ورود به وب سایت استفاده میکنم مرورگر پیغام رمز عبور اشتباه است را میدهد

function makeRandomPassword() {
$salt = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($salt, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
$password = makeRandomPassword();
$password = md5($password);

$sql = mysql_query("UPDATE users SET password='$password'
WHERE email='$email'");

$subject = "پسورد شما";
$message = "سلام پسورد جدید به ایملتان فرستادیم.

New Password: $password


Thanks!
Site admin

";




$result=mail($email, $subject, $message, "From: سایت نامWebmaster<baounajmi22@yahoo.com>\n
X-Mailer: PHP/" . phpversion());
if($result){
echo "پسورد به ایمیلتان فرستاده شد لطفا ایمیل خود راچک کنید!<br />"; }
else{
echo "خطایی در ارسال پسورد به ایمیلتان رخ داده است "; }
}

}

mtchabok
شنبه 09 مهر 1390, 11:54 صبح
این به این دلیل هس که شما بعد از اینکه پسورد رو هش کردید در ایمیل قرار میدید و می فرستید .
و در صفحه لاگین هم رمز عبور گرفته شده در سمت سرور مراحل md5 رو انجام میده و مقایسه با کاربری انجام میشه و اگه شما یه رمز md5 شده رو برای ورود به کار ببرید در سمت سرور مجددا md5 میشه و در این صورت هیچگاه لاگین نمی تونید بکنید .

farhadfery
شنبه 09 مهر 1390, 15:50 عصر
همانطور که دوستمون گفتند. رمز md5 شده را برای کاربر نفرستید. اینکار را کنید:

$password = makeRandomPassword();
$md_password = md5($password);

$sql = mysql_query("UPDATE users SET password='$md_password'
WHERE email='$email'");

$subject = "پسورد شما";
$message = "سلام پسورد جدید به ایملتان فرستادیم.

New Password: $password


Thanks!
Site admin

";

jalaladdin
شنبه 09 مهر 1390, 16:43 عصر
چه تغییری در کد من دادید اگر md5 بردارم یک رمز تصادفی میفرسته و آن موقع نه بار رمز جدید و نه با رمز قبلی نمیتوان وارد سایت شد

faravaghi
شنبه 09 مهر 1390, 17:27 عصر
سلام،
این بنده خدا اومده دو تا متغیر در نظر گرفته، یکی برای نمایش به کاربر یکی برای درج در بانک که دومی رو اومده هش کرده تا برای ورود کاربر مشکل پیش نیاد.
$password = makeRandomPassword();
$md_password = md5($password);