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

مشاهدة النسخة كاملة : الدرس الثاني بناء نموذج تسجيل دخول الأعضاء



walid_8281500
03-23-2009, 10:50 PM
استكمال للدرس السابق والذي تكلمنا فيه عن كيفية بناء نموذج دخول الأعضاء للموقع.

وكون الطريقة السابقة تفتقر للاحتراف وعدم الاعتماد على قواعد البيانات في حفظ معلومات الأعضاء.
لذا سوف نعتمد على أسلوب قواعد البيانات ليكون هناك إمكانية أكثر من عضو يمكنه تسجيل الدخول للموقع.
والمطلوب قاعدة بيانات تحت نظام (MySQL) وجدول بأسم (MyUsers) الذي سوف نقوم بتخزين أسماء الأعضاء وكلمات المرور الخاصة بهم فيه.

فيما يلي كود لإنشاء جدول باسم (MyUsers) يمكنك استخدامه وإنشاءه بواسطة برنامج (phpMyAdmin). وهو يحتوي على ثلاث حقول وهي ( ID , Name , Pass ) الجدول افتراضي!

كود:
CREATE TABLE MyUsers(
ID int(11) NOT NULL auto_increment,
Name varchar(25) NOT NULL default '',
Pass varchar(40) NOT NULL default '',
PRIMARY KEY (ID),
KEY ID (ID),
KEY Name(Name)
) TYPE=MyISAM;
INSERT INTO MyUsers VALUES (1, 'test', '123');

ومع ذلك قمت بإنشاء برنامج بأسم (Create.php) يقوم بإنشاء الجدول تلقائياً عبر المتصفح، استخدمه فهو أسرع في ذلك.
يجب أن تتأكد من إنشاء الجدول قبل أن تكمل الخطوات التالية...

الآن سوف نستخدم نفس كود النموذج الذي طرحناه في الدرس السابق(بناء نموذج تسجيل دخول الأعضاء (http://www.alremal.com/vb/showthread.php?t=48)).

بعد ذلك نستبدل الكود الخاص بالمعالجة في الدرس السابق .. بكود يعتمد على قواعد البيانات .حيث نبدأ الكود بالاتصال بقاعدة البيانات كما يلي

كود PHP:


include("Connect.php");





وهذا الكود فقط يقوم باستدعاء صفحة خارجية.. وهنا تمثل ملف باسم (Connect.php) والذي يقوم بدوره بالاتصال بقاعدة البيانات واختيارها.

وتفيد هذه الطريقة بعدم تكرار كتابة كود الاتصال بقاعدة البيانات والتي سوف تستخدم كثيرا في التعامل مع الموقع والتي تعتمد على قاعدة البيانات بشكل متكرر.
وليس أمر استدعاء الملفات مقتصر على الملفات التي تحتوي على كود الاتصال بقاعدة البيانات بل يمكنك إنشاء ملفات تحتوي على رأس الصفحة وذيلها بالأسفل وتقوم بإدراجها في كل صفحة بكتابة سطر واحد فقط بدل كتابة العديد من الأسطر.

ومحتوى الملف (Connect.php) كما يلي :

كود PHP:


<?

$dbhost = "localhost"; // هنا المستضيف
$dbuname = ""; // هنا اسم مستخدم قاعدة البيانات
$dbpass = ""; // هنا الرقم السري لقاعدة البيانات
$dbname = "MyDataName"; //هنا اسم قاعدة البيانات

// نتصل بقاعدة البيانات
$dbi = mysql_connect( $dbhost, $dbuname, $dbpass);
if(!$dbi)
{
echo 'لا يمكن الاتصال بملقم قاعدة البيانات.';
exit;
}
//نختار قاعدة البيانات
$dbi = mysql_select_db($dbname);
if(!$dbi)
{
echo 'لا يمكن اختيار قاعدة البيانات.';
exit;
}
?>


بالنسبة لكود الاتصال بقاعدة البيانات سبق وان قمنا بشرحه في هذا الدرس( الأتصال بقاعدة البيانات من نوع MySql ).
بعد الاتصال نقوم بكتابة الجملة الاستعلامية التالية:

كود PHP:


$query= "select * from Users where Name= '$UserName' and Pass= '$UserPass'";
$result = mysql_query($query);
if(!$result)
{
echo 'لا يمكن تشغيل الاستعلام';
exit;
}



والتي عن طريقها نتأكد من معلومات المستخدم التي ادخلها ( الاسم والرقم السري) وتخزين القيمة في المتغير (query) ثم تشغيل الاستعلام وتخزينه في المتغير (result) وفي حالة عدم تشغيل الاستعلام لسب ما سوف نخرج رسالة بعد إمكانية تشغيل الاستعلام ونخرك من الأجراء بالأمر (exit).

بعد وصول البيانات من الاستعلام وهنا بالطبع سوف تكون النتيجة شخص واحد لأنه لا يجوز تكرار اسم المستخدم لأكثر من شخص أو تكون النتيجة صفر بعدم وجود مستخدم مسجل في قاعدة البيانات إذا النتيجة النهائية يجب أن تكون 0 أو 1 وهنا نكتب لكود التالي :

كود PHP:


$numrows = mysql_num_rows($result);
if ($numrows ==0){
echo "<center><font color=red>";
echo "لا يوجد مستخدم بهذا المعلومات";
echo "</font></center>";
exit;
}else {
echo "Welcome $UserName<br><hr color=red>";
}



حيث المتغير سوف يحمل (numrows) قيمة السجلات الناتجة من الاستعلام وهي كما أسلفنا إما صفر أو واحد.
فإذا كانت صفر سوف نخرج رسالة تفيد بعدم وجود مستخدم بهذه المعلومات ثم نخرج من الأجراء. وإذا كان الناتج عكس ذلك يعني واحد سوف نخرج رسالة ترحيب بالعضو. ثم نقوم بعرض بياناته المسجلة لدينا إذا أحببنا أو نقوم بفتح صفحه كانت محجوبة عن الزوار وهذا الكود يوضح كيفية عرض بيانات من نتيجة الاستعلام.

كود PHP:


list($ID, $Name, $Pass) = mysql_fetch_row($result);
echo "Your Profile<br>";
echo "User ID: <b>$ID</b><br>";
echo "User Name: <b>$Name</b><br>";
echo "User Password: <b>$Pass</b><br><hr>";
}



وفيما يلي ملف مضغوط(WinZip) يحتوي على ثلاث ملفات والتي استخدمناها في تطبيقنا هذا وهي:
1 - ملف الربط بقاعدة البيانات (Connect).
2- ملف نموذج تسجيل دخول الأعضاء بواسطة قاعدة البيانات (LoginByDB).
3 - ملف يحتوي على كود إنشاء جدول (Create.php) عبر المتصفح.
4 - كود إنشاء الجدول بامتداد (MyUsers.sql). فقط لمن يريده حيث الملف (Create.php) يغني!

لتحميل الملف اضغط هنا (LoginByDB.zip (http://www.alremal.com/LessonsTest/LoginByDB/LoginByDB.zip)) ولمشاهدة مثال لهذا التطبيق اضغط هنا (LoginByDB.php (http://www.alremal.com/LessonsTest/LoginByDB/LoginByDB.php)).