الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه fatmaali في 29 سبتمبر 2012 · 7 رد · 1,107 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم عندي مشكلة مش عارفة احلها الزاى عندى صفحةاسترجاع كلمه المرور للمشرفين وفيها يقوم المشرف بوضع ايميله فقط ومن ثم يضغط ارسال ليتم ارسال الباسورد الجديد الى ايميله

الكود تمام ويعمل بشكل طبيعى ويرسل المعلومات وكل شيئ

لكن هناك مشكلة

لو كتبت ايميل غير موجود بالقاعدة يكتب تم الارسال لكنه لا يريسل طبعا لكنه يكتبها لو كتبت اى نص مكان الايميل يكتب تكم الارسال

الموضوع ىانى اريد كود يتم وضعه لكي يتاكد من الايميل المدخل اذا موجود بالقاعدة يكتب تم الارسال واذا غير موجود بالقاعدة يكتب الايميل غير موجود بالقاعدة . واذا لم يدخل اى شيئ يكتب له قم بادخال الايميل

هذا هواالكود كامل

تفضلو

<? 
include("config.php");
// الجزء المخصص لحقل ادخال البريد الالكتروني 
if ($action=="EMail"){ 
ECHO "            
<div id='innerlogin'>
            	<form name='form1' method='post' action='?action=send-email'> 
                	<p><span lang='ar-sa'>ضع ايميلك هنا</span> :</p>
                	<input type='text' class='logininput' name='email' size='1' />
                   	<input type='submit' class='loginbtn' value='استرجع !' style='color: #FFFFFF' /></form>
            </div>
            "; 
} 
$tbl_name=admin;// جدول المشرفين 
$WHERE_name=email; // حقل الايميل 
// الجزء الخاص بتنفيذ عملية تغيير كلمة المرور ثم ارسالها عبر البيريد 
if ($action=="send-email"){ 
$titlemain="استرجاع كلمة المرور"; 
$email=trim($_POST["email"]); 
// 
$select=mysql_query("select * from  $tbl_name where  $WHERE_name='$email'"); 
while($row=mysql_fetch_row($select)) 
{ 
$pass=$row[3]; 
$admin_name=$row[1]; 
$email=$row[2]; 
} 
// دالة توليد كلمة مرور عشوائية 
function random_password($chars = 8) { 
global $letters; 
$letters = '1234567890'; 
$letters= substr(str_shuffle($letters), 0, $chars); 
} 
random_password(); 
$pass=(($letters)); 

// شرط التأكد من وجود الايميل المدخل 
if(!$email) 
{ 
ECHO "لم تقم بادخال الايميل"; 
exit(); 
} 
else 
{ 
// امر تحديث كلمة السر في قاعدة البيانات 
$Sw="update $tbl_name set pass='$pass' where $WHERE_name='$email'"; 
$Result =mysql_query($Sw); 
// التأكد من نجاح العملية 
if($Result){ 
echo "تم تعديل البيانات بنجاح"; 
ECHO "$email  تم 
إرسال البيانات إلى الايميل "; 
echo "<META HTTP-EQUIV=Refresh Content=2;URL=index.php>"; 
// دالة الارسال 
$msg = "
<div align='center'>
	<table border='0' width='49%' cellspacing='3' cellpadding='0' height='158' dir='rtl'>
		<tr>
			<td colspan='2' bgcolor='#F2F2F2'>
			<p align='center'><b><font face='Tahoma' size='2'>لقد
			 طلبت استرجاع كلمة مرورك فى موقع  $site_title</font></b></td>
		</tr>
		<tr>
			<td width='26%' bgcolor='#F2F2F2' align='center'>
			<p align='center'><b><font face='Tahoma' size='2'>اسم الدخول :</font></b></td>
			<td width='56%' bgcolor='#F2F2F2'>
			<p align='center'><font face='Tahoma' size='2'><b>$admin_name</b></font></tr>
		<tr>
			<td width='26%' bgcolor='#F2F2F2' align='center'>
			<b>
			<font face='Tahoma' size='2'>كلمة المرور الجديدة :</font></b></td>
			<td width='56%' bgcolor='#F2F2F2'>
			<p align='center'><font face='Tahoma' size='2'><b>$letters</b></font></td>
		</tr>
		<tr>
			<td width='41%' bgcolor='#F2F2F2' align='center'>
			<b><font face='Tahoma' size='2' color='#FF0000'>يمكنك الدخول عبر 
			الرابط التالى </font></b></td>
			<td width='41%' bgcolor='#F2F2F2' align='center'>
			<p align='center'><font face='Tahoma' size='2'>
			<a target='_blank' href='http://$http/idea_admin'>
			http://$http/idea_admin</a></font></td>
		</tr>
		</table>
</div>
";

$subject = "لقد طلبت استرجاع كلمة مرورك بموقع   :  $site_title";
$mailheaders = "From: $webemail`<> \n";
$mailheaders .= "Content-type: text/html; charset=\"windows-1256\"\n";
$mailheaders .= "Reply-To: $email\n\n"; 
@mail($email, $subject, $msg, $mailheaders); 

} 
// رسالة الخطأ عند حدوث مشكلة اثناء تحديث البيانات 
else { 
echo "حدث خطأ اثناء عملية التعديل"; 
EXIT; 
} 
} 
} 
?>
#2

اذا لم يدخل اى شيئ يكتب له قم بادخال الايميل

هده الطريقة قم بالبحت عن هدا الكود

اقتباس
if(!$email)

{

ECHO "لم تقم بادخال الايميل";

exit();

و استبدله هكدا

اقتباس
if(!$email)

{

ECHO "قم بادخال الايميل";

exit();

#3

عزيزى الكود موجود فعلا فى نفس الصفحة

ECHO "لم تقم بادخال الايميل";

exit();

انا ما ابحث عنه هو ان يقوم بالتاكد من المدخل هل موجود بالقاعدة ام لا اذا لا يكتب له الايميل المدخل غير موجود بالقاعدة

لانه حاليا ايا كان المدخل يكتب له تم تعديل الباسورد وارسال رساله لببريدك

مهما كان المدخل موجود او غير موجود بالقاعدة

#4

مافي ولا رد الى الان ؟؟؟ :blink:

#5

اهلا وسهلا

اخي عند ادخال الاميل افعل استعلام لاميل داخل القاعدة اذا موجود ارسل غير موجود الاميل غير صحيح

فقط استخدم الاستعلام

وشكرااا

#6
legendq كتب:

اهلا وسهلا

اخي عند ادخال الاميل افعل استعلام لاميل داخل القاعدة اذا موجود ارسل غير موجود الاميل غير صحيح

فقط استخدم الاستعلام

وشكرااا

ها يمكن توضيح الامر لي على الكود المرفق لانو انا مبتدئه لسا

#7

لقد قمت بحل المشكل واضع بين يديكم الكود لتعم الفائدة والتعديل يعمل على استعلام عن الايميل المدخل بالقاعدة اذا كان موجود يقوم بتعديل البيانات ومن ثم ارسال المعلومات واذا لم يكن موجودا بالقاعدة يقوم باظهار برساله انه لا يوجد الايميل بالقاعدة ....

<? 

// الجزء المخصص لحقل ادخال البريد الالكتروني 
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='text' id='email' size='25'> 
<input class='btn' value='استرجع كلمة المرور !' type='submit'></p> 
</form> 
</td> 
</tr> 
</table>"; 
} 
/////////////////////////////////////////// 
// البيانات الواجب تعديلها 
$tbl_name=member;// جدول الاعضاء 
$WHERE_name=email; // حقل الايميل 

// الجزء الخاص بتنفيذ عملية تغيير كلمة المرور ثم ارسالها عبر البيريد 
if ($action=="send-email"){ 
$titlemain="استرجاع كلمة المرور"; 
$email=trim($_POST["email"]); 
// 
$select=mysql_query("select * from  $tbl_name where  $WHERE_name='$email'"); 
while($row=mysql_fetch_row($select)) 
{ 
$email=$row[4]; 
$un=$row[2]; 
$pw=$row[3]; 
} 
// دالة توليد كلمة مرور عشوائية 
function random_password($chars = 8) { 
global $letters; 
$letters = '1234567890'; 
$letters= substr(str_shuffle($letters), 0, $chars); 
} 
random_password(); 
$pw=(($letters));
// شرط التأكد من وجود الايميل المدخل 
if(!$email) 
{ 
ECHO "<div align='center'><b><font class='fonttable' color='#FF0000' face='Tahoma'>تأكد من الايميل غير موجود</b></p>"; 
	exit(); 
} 
else 
{ 
    $sql = mysql_query("SELECT * FROM member WHERE 'email'='email'"); 
	$res_news = mysql_query("SELECT * FROM `member` where email='$email' ");
	$myrow_news=mysql_num_rows($res_news);
	//echo $myrow_news;													
if($myrow_news){echo"<div align='center'>
<font color=red><h3>الايميل موجود بالقاعدة<br>
	</h3></font>";
	}else{
	echo"<div align='center'>
<font color=green><h2>الايميل  غير موجود بالقاعدة</h2>";
exit(); 	
	}
// امر تحديث كلمة السر في قاعدة البيانات 
$Sw="update $tbl_name set pw='$pw' where $WHERE_name='$email' and active=1"; 
$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'>$email</font><font class='fonttable2' color='#008000'> <font class='fonttable'>تم 
إرسال البيانات إلى الايميل  </b></p>"; 
// دالة الارسال 
$msg = "
<div align='center'>
	<table border='0' width='49%' cellspacing='3' cellpadding='0' height='158' dir='rtl'>
		<tr>
			<td colspan='2' bgcolor='#CC9900'>
			<p align='center'><b><font face='Tahoma' color='#FFFFFF' size='2'>
			لقد طلبت استرجاع كلمة مرورك <span lang='ar-sa'>سـوق ليبيا</span> </font></b></td>
		</tr>
		<tr>
			<td width='26%' bgcolor='#F2F2F2' align='center'>
			<p align='center'><b><font face='Tahoma' size='2'>اسم الدخول :</font></b></td>
			<td width='56%' bgcolor='#F2F2F2'>
			<p align='center'><font face='Tahoma' size='2'><b>$un</b></font></tr>
		<tr>
			<td width='26%' bgcolor='#F2F2F2' align='center'>
			<b>
			<font face='Tahoma' size='2'>كلمة المرور الجديدة :</font></b></td>
			<td width='56%' bgcolor='#F2F2F2'>
			<p align='center'><font face='Tahoma' size='2'><b>$letters</b></font></td>
		</tr>
		<tr>
			<td width='82%' bgcolor='#F2F2F2' align='center' colspan='2'>
			<p><font face='Tahoma' size='2'><b>يمكن من هنا تسجيل
			الدخول : <a target='_blank' href='http://www.libyasoq.com'>
			http://www.libyasoq.com</a></b></font></td>
		</tr>
		</table>
</div>";

$subject = "لقد طلبت استرجاع كلمة مرورك بموقع   :  $site_title";
$mailheaders = "From: $webemail`<> \n";
$mailheaders .= "Content-type: text/html; charset=\"windows-1256\"\n";
$mailheaders .= "Reply-To: $email\n\n"; 
@mail($email, $subject, $msg, $mailheaders); 

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

الاستعلام الذي تم اضافتة

 $sql = mysql_query("SELECT * FROM member WHERE 'email'='email'"); 
	$res_news = mysql_query("SELECT * FROM `member` where email='$email' ");
	$myrow_news=mysql_num_rows($res_news);
	//echo $myrow_news;													
if($myrow_news){echo"<div align='center'>
<font color=red><h3>الايميل موجود بالقاعدة<br>
	</h3></font>";
	}else{
	echo"<div align='center'>
<font color=green><h2>الايميل  غير موجود بالقاعدة</h2>";
exit(); 	
	}
#8

اختي العزيزة طالما انك تقومي بالاستعلام عن سجل واحد من خلال الايميل الذي لا يصح ان يتكرر

لا تقومي باستخدام While

$select=mysql_query("select * from  $tbl_name where  $WHERE_name='$email'"); 
while($row=mysql_fetch_row($select)) 
{

الافضل ان تفعلي التالي

$select=mysql_query("select * from  $tbl_name where  $WHERE _name='$email'"); 
$row=mysql_fetch_row($select));
if($row['_name']!="")
{

بالسطر الاول قمتي بعمل جملة سيلكست

السطر الثاني ادرجنا البيانات في مصفوفة

السطر الثالث تأكدنا ان هناك نتائج مطابقة للاستعلام

وبناءا عليه نفذنا كود ارسال الكلمة الجديدة مع تعديل الكلمة الحالية

وشكراً لك

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…