مستوى الدرس: متوسط
اللغات المستخدمة: PHP, SQL, 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();
من دالة mysql_fetch_assoc($result); قمنا باستخراج الاستعلام ووضعه في متغير حيث ان قيمة الاستعلام دائما تكون منطقية, بعد ذلك نتحقق من القيمة المنطقية المستخرجة من الاستعلام حيث اذا كانت تساوي 0 تعني لايوجد تطابق ولذلك نظهر رسالة الخطأ واما غير ذلك يتم توجيه المستخدم ال رسالة الترحيب عن طريق الدالة header();
حيث دالة $_POST تستخرج المعلومات المرسلة من
النموذج السابق.
الان لنجرب ادخال البيانات الصحيحة (اسم المستخدم: admin وكلمة السر: tictactoe):
ولنجرب ادخال معلومات غير صحيحة (مثلا: اسم المستخدم: ali وكلمة السر: password):
أنتهينا ! درس سهل اليس كذلك؟ :)
المثال متوفر للتحميل : https://docs.google.com/open?id=0B38AluNyPIRSMGZadS1GS0NKTTQ
تعليقات
جزيتم خيرا
أنت تبحث على حقول في قاعدة بيانات ؟!
في خطأ بيظهر لي في السطر ده
أنا عندي الجدول اسمه : login استبدلته مع user_info وشغال زي الفل
ان دالة 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