PDA

View Full Version : بازگردانی رمز عبور



yasgig
شنبه 24 مرداد 1388, 00:03 صبح
با سلام خدمت کلیه کاربران جامعه برنامه نویس
بنده می خوام وقتی کاربر نام کاربری و آدرس ایمیل خودشو وارد کرد در صورتی که اطلاعات وارد شده صحیح بود رمز عبور کاربر نشون داده بشه.حالا کدی رو پیدا کردم که اطلاعات رو چک می کنه و اگه درست بود یه متن رو چاپ می کنه.حالا می خوام به جای اون متن رمز عبور کاربر چاپ بشه.من کدها رو در پایین می زارم و از دوستان خواهش دارم منو در این زمینه راهنمایی فرمایند.
lostpassword.php

<form name="Contactform" method="post" target=_parent action="lostpassword_process.php">
</td>
</tr>
<tr>
<td align=right width="66">نام کاربری:</td>
<td align=right width="1035">
<INPUT size=25 name=username class="textbox" maxlength="100" dir="ltr">
</td>
</tr>
<tr>
<td align=right width="66">آدرس ایمیل:</td>
<td align=right width="1035">
<INPUT size=25 name=email class="textbox" maxlength="60" dir="ltr">
</td>
</tr>
<tr>
<td align=right height="25" colspan="2">
<p align="center">
<INPUT type=submit value="مشاهده رمز" name="submit" class="content" style="float: right">
</tr>
</form> lostpassword_process.php


<?php
mysql_connect('localhost','root','');
mysql_select_db('test');
$username = strtolower($_POST['username']);
$email = $_POST['email'];
$sql = "SELECT `email` FROM `yasgig_user` WHERE `username` = '$username'";
$result = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result) == 0)
{
print('<p><p><p><center><h2>نام کاربری وارد شده صحیح نمی باشد</h2><p><a href="javascript:history.go(-1)">بازگشت</a></center>');
}
if(mysql_num_rows($result) == 1)
{
if($email == mysql_result($result,0))
{
$passwordresult = true;
print('<center><p><p><p><h2>رمز عبور شما عبارت است از</h2><p>در صورتی که تا چند لحظه دیگر به بخش مربوطه منتقل نشدید بر روی این لینک کلیک نمایید');
}else{
print('<p><p><p><center><h2>این آدرس ایمیل هنگام ثبت نام وارد نشده است</h2><p><a href="javascript:history.go(-1)">بازگشت</a></center>');
}
}
?>
<html dir="rtl">
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head> sql

# Table structure for table `yasgig_user`
CREATE TABLE `yasgig_user` (
`username` varchar(20) NOT NULL default '',
`password` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
PRIMARY KEY (`username`),
UNIQUE KEY `email` (`email`)
) TYPE=MyISAM;

INSERT INTO `yasgig_user` VALUES ('admin', 'admin', 'admin@gmail.com');
با تشکر!

rash44
شنبه 24 مرداد 1388, 10:35 صبح
سلام
اگه پسورد کاربر کد شده باشه (md5) تا اونجایی که من می دونم فکر کنم نشه برشگردوند و به کاربر نشونش داد
بهترین کار اینه که خود برنامه 1 پسورد بصورت تصادفی براش بسازه و پسورد جدید را براش ایمیل کنه

yasgig
شنبه 24 مرداد 1388, 11:06 صبح
سلام
پسورد کد گذاری نمیشه و همون طوری که توی فایل sql بالا می بینید نام کاربری و رمز عبور هر دو admin می باشد.
در مورد ایمیل هم اینو بگم که ایمیل ما با چند دقیقه تاخیر ارسال می شه که این هم نمی تونه واسه ارسال رمز عبور خوب باشه.معمولا کاربران پس از بازگردانی رمز عبور سریعا به آدرس ایمیل شون مراجعه می کنند واگه رمز عبور رسیده نباشه..........
با تشکر

yasgig
شنبه 24 مرداد 1388, 11:59 صبح
آخه رمز عبور کد گذاری نمیشه که بخوایم برگردونیمش.به طور مثال اگه رمز عبور کاربر 123 باشه همون 123 توی بانک اطلاعاتی ثبت می شه نه چیز دیگه ای!حالا من می خوام اونو نشون بدم.در مورد ارسال به ایمیل هم که در پست بالایی گفتم مشکل دارم.
با تشکر

rash44
شنبه 24 مرداد 1388, 13:12 عصر
این که به درد نمی خوره . البته شما روشت اینه ولی بهتره از md5 استفاده کنی hash کنیش .


من هم موافقم

yasgig
شنبه 24 مرداد 1388, 19:28 عصر
بنده به نظرات شما احترام می زارم ولی شما فرض کنید که هاست ما امکان ارسال ایمیل رو نداره.مثلا همین انجمن برنامه نویس چه جوری پس از اینکه لاگین کنیم نام کاربری ما رو اون بالا نشون می ده؟من هم می خوام وقتی کاربر نام کاربری و آدرس ایمیل شو وارد کرد رمز عبورش نشون داده بشه.حالا کدی رو که در بالا قرار دادم این کارو واسم می کنه ولی نمی دونم چجوری باید رمز عبور رو دریافت کنم.
با تشکر

yasgig
شنبه 24 مرداد 1388, 20:15 عصر
توی متغیر result چی بنویسم؟
در مورد امنیتش هم اینو بگم که نام کاربری و آدرس ایمیل باید با هم مطابقت داشته باشند تا رمز عبور نشون داده بشه
حالا اگه شما نام کاربری و آدرس ایمیل دوستون رو می دونید..........حتما رمز عبورشو هم می دونید!
با تشکر

hidensoft
یک شنبه 25 مرداد 1388, 10:39 صبح
شرمنده یهو می پرم وسط بحث

بهترین کار اینه که خود برنامه 1 پسورد بصورت تصادفی براش بسازه و پسورد جدید را براش ایمیل کنه
چند تا راه دیگه هم هست
مثلا زمانی که متوجه شدی که کاربر همونی هست که باید باشه ازش بخوای کلمه عبور جدید رو وارد کنه
مثلا بعضی جاها می بینید که برای کاربر ایمیلی فرستاده می شه حاوی یک لینک که اگر می خواهید کلمه عبورتان تغییر کنه روی این لینک کلیک کنید.
کاربر کلیک می کنه در صفحه جدید کلمه عبور جدید رو وارد می کنه.

بعضی وقتی دیدید یه سوال از کاربر می پرسن وقتی کلمه عبور رو گم می کنه ازش اون سوال رو می پرسن اگر بلد بود کلمه عبور جدید رو وارد می کنه.

در ضمن اگر نیاز به برگردوندن کلمه عبور بود با استفاده از Base64 می تونید هم بصورت رمز در بیارید و هم از رمز خارج کنید. نمونش هم زیاده جست و جو کنید.

yasgig
جمعه 06 شهریور 1388, 12:34 عصر
از دوستان کسی می تونه کد ارسال رمز عبور به آدرس ایمیل رو در اینجا قرار بده؟

hadiaj168
شنبه 07 شهریور 1388, 00:50 صبح
البته یه خورده دساکاری می خواد.
function notify_password($username, $password)
// notify the user that their password has been changed
{
if (!($conn = db_connect()))
return false;
$result = mysql_query("select email from users
where email ='$username'");
if (!$result)
{
return false; // not changed
}
else if (mysql_num_rows($result)==0)
{
return false; // username not in db
}
else
{
$from = "From: downloadcounter@gmail.com \r\n";
$mesg = "your password has been changed to : $password \r\n"
."Please change it next time you log in. \r\n"
."<a href='http:/j.........../index2' >http://................r/</a> \r\n";
if (mail($username, 'DownLoad Counter login information', $mesg, $from))
return true;
else
return false;
}
}