Warning: Function get_magic_quotes_gpc() is deprecated in /home/forumbs/public_html/includes/class_core.php on line 1960
درس متقدم : استرجاع كلمة المرور [الأرشيف] - منتديات بانى ستار

المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : درس متقدم : استرجاع كلمة المرور



mostafaxman
03-18-2009, 11:47 AM
السلام عليكم و رحمة الله و بركاته

اما بعد

اليوم جهزت درس جديد و مهم جدا لاي سكريبت و هو كيفية استرجاع كلمة مرور الاعضاء
العملية بسيطة جدا و تعتمد اساسا على شيئين مهمين و هما :

1 - اسم جدول الاعضاء
2 - اسم حقل البريد الالكتروني
راح نعتمد على تشفير كلمة المرور دائما في عملية حماية كلمة السر كالمعتاد بتشفير md5

نأتي لتطبيق :
نجهز ملف و نسميه send_password.php و هذا محتواه



<?
include("config.php");// جلب ملف الاتصال بقاعدة البيانات

// الجزء المخصص لحقل ادخال البريد الالكتروني
if ($action=="EMail"){
ECHO "<div align='center'><table width='380' border='0' cellpadding='3' cellspacing='1' id='table1' >
<tr>
<td width='100%'>
<p align='center'>ادخل بريدك الالكتروني </td>
</tr>
<div align='center'></table><table width='380' border='0' cellpadding='3' cellspacing='1' >
<tr>
<td width='100%'><form name='form1' method='post' action='?action=send-email'>
<p align='center'>
<input name='email' type='****' id='email' size='25'>
<input type='submit' name='SignIn' value='أرسل'>
</p>
</form>
</td>
</tr>
</table>";
}
///////////////////////////////////////////
// البيانات الواجب تعديلها
$tbl_name=users;// جدول الاعضاء
$WHERE_name=EMail; // حقل الايميل

// الجزء الخاص بتنفيذ عملية تغيير كلمة المرور ثم ارسالها عبر البيريد
if ($action=="send-email"){
$titlemain="استرجاع كلمة المرور";
$email=trim($_POST["email"]);
//
$w=mysql_query("select * from $tbl_name where $WHERE_name='$email'");
while($row=mysql_fetch_row($w))
{
$***master_email=$row[3];
$username=$row[1];
$password=$row[2];
}
// دالة توليد كلمة مرور عشوائية
function random_password($chars = 8) {
global $letters;
$letters = 'abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX YZ1234567890';
$letters= substr(str_shuffle($letters), 0, $chars);
}
random_password();
$pass=md5(md5($letters));

// شرط التأكد من وجود الايميل المدخل
if(!$***master_email)
{
ECHO "<div align='center'><b><font class='fonttable' color='#FF0000' face='Tahoma'>تأكد من الايميل غير موجود</b></p>";
exit();
}
else
{

// امر تحديث كلمة السر في قاعدة البيانات
$Sw="update $tbl_name set password='$pass' where $WHERE_name='$email'";
$Result =mysql_query($Sw);
// التأكد من نجاح العملية
if($Result){
echo "<div align='center'><p><b><font face='Tahoma' size='2' color='#008000'>تم تعديل البيانات بنجاح</font></b></p></p>";
ECHO "</font><font class='fonttable' face='Tahoma'><p align='center'><b> <font class='fonttable2' color='#0000FF'>$***master_email</font><font class='fonttable2' color='#008000'>&nbsp;<font class='fonttable'>تم
إرسال البيانات إلى الايميل </b></p>";
// دالة الارسال
$msg = "هذه معلومات الدخول للعضو\n";
$msg.= "إسم المستخدم:\t$username\n";
$msg.= "كلمة السر:\t$letters\n";
$subject = "رسالة لاسترجاع بياناتك "; // عنوان الرسالة
$mailheaders = "From: $***master_email <> \n";
$mailheaders .= "Reply-To: $***master_email\n\n";
@mail($***master_email, $subject, $msg, $mailheaders);

}
// رسالة الخطأ عند حدوث مشكلة اثناء تحديث البيانات
else {
echo "<div align='center'><p><b><font face='Tahoma' size='2' color='#FF0000'>حدث خطأ اثناء عملية التعديل</font></b></p>&nbsp;</p>";
EXIT;
}
}
}
?>


الشرح مبين في الكود
و الآن كيف راح نستدعي رابط ادخال البريد من الملف ؟
ببساطة الرابط هو : send_password.php?action=EMail

و بهذا نكون قد اكملنا العملية و راح توصل رسالة البيانات الى بريد العضو

اتمنى اني وفقت في الشرح و ان تستفيدوا من هذا الموضوع

اخوكم الفقير الى الله
و السلام عليكم و رحمة الله و بركاته