ابحث في هذه المدونة

الخميس، 27 سبتمبر، 2012

انشاء صفحة تسجيل دخول


مستوى الدرس: متوسط

اللغات المستخدمة: PHPSQL, HTML 
كما أفترض ان لديك معرفة مسبقة بأساسيات لغة SQL والقليل من PHP .

البرامج المستخدمة: مخدم WAMP، برنامج Adobe Dreamweaver CS5 او اي محرر "كود" برمجي .

الصفحات التي سوف ننشئها : 
Index.html 
process.php
  welcome.html
ان انشاء صفحة تسجيل دخول حقيقية ليست بالصعوبة التي تتصورها فكل الية تسجيل دخول تتشابه بالاساسيات وربما تختلف من ناحية الجرافكس او شدة الاجراءات الوقائية, في النهاية كلها تتألف من ثلاث مراحل (ادخال البيانات, التحقق من وجود البيانات في قاعدة البيانات, التصرف في حال وجودها ام عدمه) لاشيء اخر وكلها في غاية السهولة!! تابع معي:
الخطوة الاولى يجب ان ننشىء جدول في قاعدة البيانات يحتوي على جدول مكون من ثلاثة حقول (id, user, pass) وسندخل بعض المعلومات عن اسماء مستخدمين وكلمات السر كما هو موضح في الصورة:



لقد ادخل معلومات مستخدم واحد كما هو موضح , والان لننتقل الى الخطوة التالية:الخطوة الثانية انشاء الصفحات الثلاث (صفحة استقبال المعلومات, صفحة معالجة المعلومات والتحقق من وجودها في قاعدة البيانات, صفحة الترحيب في حالة كانت المعلومات صحيحة).الان لنبدأ بصفحة استقبال المعلومات وستتكون من حقلين (اسم مستخدم وكلمة السر وزر الارسال) قم بفتح محرر النصوص او برنامج التصميم وقم بكتابة شيفرة HTML التالية :


<div align="center" dir="rtl" style="background-color:#CCC;">

تسجيل الدخول
<br />
<br />

<form action="process.php" method="post">
<label> اسم المستخدم </label>
<input type="text" name="user" /><br /><br />

<label>كلمة السر </label>
<input type="password" name="pass" /><br /><br />

<input type="submit" value="تسجيل دخول"  /><br />
<br />
</form><br />

</div>


والان لنأتي الى الصفحة الثانية والاهم (صفحة المعالجة) (process.php)
قم بأنشاء ملف جديد واكتب الشيفرة التالية:




<?php
if (empty($_POST['user']) || empty($_POST['pass'])) {
echo "يرجى ملء كافة الحقول";
} else { 

 $db_name="test";
 


mysql_connect("localhost","root","");
mysql_select_db($db_name);
$result=mysql_query("SELECT  *  FROM `".$db_name."`.`users_info` WHERE `user` = '".$_POST['user']."' AND `pass` = '".$_POST['pass']."' ");
$result_a=mysql_fetch_assoc($result);
   
 
if ($result_a==0)
{
echo "هناك خطأ في اسم المستخدم او كلمة السر";
} else {
  header("Location: welcome.html");
   
}
 

 
}
?>

في البداية استخدمنا دالة empty للتحقق من عدم خلو اي حقل من البيانات والا سنظهر رسالة الخطأ, بعد ذلك استخدمنا متغير لخزن اسم قاعدة البيانات (في هذه الحالة test ) ثم بواسطة mysql_connect  قمنا بالاتصال بالمخدم عن طريق المعلومات بين الاقواس (مخدم محلي) .
بعد ذلك امرنا قاعدة البيانات بالتالي:

SELECT  *  FROM `".$db_name."`.`users_info` WHERE `user` = '".$_POST['user']."' AND `pass` = '".$_POST['pass']."'

اي استخرج كل البيانات المطابقة لاسم المستخدم المزود وكلمة السر.


من دالة mysql_fetch_assoc($result); قمنا باستخراج الاستعلام  ووضعه في متغير حيث ان قيمة الاستعلام دائما تكون منطقية, بعد ذلك نتحقق من القيمة المنطقية المستخرجة من الاستعلام حيث اذا كانت تساوي 0 تعني لايوجد تطابق ولذلك نظهر رسالة الخطأ واما غير ذلك يتم توجيه المستخدم ال رسالة الترحيب عن طريق الدالة header();
حيث دالة $_POST تستخرج المعلومات المرسلة من النموذج السابق.

الان لنجرب ادخال البيانات الصحيحة (اسم المستخدم: admin وكلمة السر: tictactoe):

ولنجرب ادخال معلومات غير صحيحة (مثلا: اسم المستخدم: ali وكلمة السر: password):



أنتهينا ! درس سهل اليس كذلك؟ :)


المثال متوفر للتحميل : https://docs.google.com/open?id=0B38AluNyPIRSMGZadS1GS0NKTTQ

هناك 10 تعليقات:

räumung يقول...

شكراً لكم ... اتمنى لكم المزيد من التوفيق

räumung
räumung

غير معرف يقول...

شرح رائع جدا
جزيتم خيرا

Amro Photography يقول...

هل mysql_query أستخدمها في الاستعلام على جداول أم قاعدة بيانات ؟؟

أنت تبحث على حقول في قاعدة بيانات ؟!

Amro Photography يقول...

هل mysql_query تستخدم للاستعلام عن حقول في جدول ام في قاعدة بيانات ؟؟؟

في خطأ بيظهر لي في السطر ده

Amro Photography يقول...

شكرا يا كبير تم اصلاح الخطأ

أنا عندي الجدول اسمه : login استبدلته مع user_info وشغال زي الفل

Ali A. Othman يقول...

Amro Photography
ان دالة mysql_query تستخدم للاستعلام عن حقول داخل جداول معينة وقد قمنا تحديد اسم قاعدة البيانات واسم الجدول في السطر التالي:
SELECT * FROM `".$db_name."`.`users_info`

ماهو نوع الخطأ الذي تواجهه؟

غير معرف يقول...

شكرا جزيلا اخي

غير معرف يقول...

طلع عندي خطا بهذا الكود شنو الحل
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /customers/e/2/9/bazwaya.com/httpd.www/process.php on line 14 you have error username or password

المحترف برو للمعلوميات ‍- Elmohtrf pro llm3lomiat يقول...

طيب كيف اربطو بالمدونة

mahammed mira يقول...

ممكن تشرح كيف انشئ قاعده بيانات ( انا مبتدئ يا اخي)