بسم الله الرحمن الرحيم

درس اليوم هو درس بوجهة منظرى متوسط لانه لا يرتقى لمرحلة الاحتراف

لانى واضع بالدرس الطريقة المبتدئة بالنسبة لنظام تسجيل الاعضاء

الهدف من الموضوع هو وصول الفكرة العامة للاعضاء بخصوص نظام تسجيل الاعضاء

يكون الموضوع على جانبين
1- تحليل النظام
2- برمجة النظام

---------------------------------------

أولا : تحليل النظام

ناخد اول جانب وهو تسجيل العضو

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

المشكلة فى كود الphp المسئول عن حفظ البيانات بالقاعدة

اذن بعد تفكرينا نحن نحتاج الى

1- فورم التسجيل
2- اتصال بقاعدة البيانات
3-استقبال المتغيرات من الفورم وحمايتها
4-ادراج البيانات بقاعدة البيانات

-------------------------------------------------

بالنسبة لتسجيل دخول العضو

بالنسبة لتسجيل دخول العضو نحن نحتاج الى فورم ليدرج به الزائر البيانات

ما علينا هو ان نستقبل البيانات ونقارنها بالبيانات الموجودة بالقاعدة

ان وجدت ,, فالزائر ادخل بيانات صحيحة ونقوم بحفظ اسمه فى سيشن وان لم توجد فالزائر ادخل بيانات خاطئة

----------------------------------------------------------------

بالنسبة لتسجيل خروج العضو

بالنسبة بتسجيل خروج العضو فهو سهل بعض الشىء

لن نحتاج الى فورم او اى شىء

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

نتاكد من انه مسجل دخول بالفعل ام لا

لو ليس مسجلا نذهب بيه الى الرئيسية

وولو كان مسجلا نقوم بتدمير الجلسة المسجل بها اسمه

-------------------------------------------------------

بسم الله نبدء التطبيق العملى

اول شىء يجب ان نعمل قاعدة البيانات ونضع بها الامر هذا

كود PHP:
                      CREATE TABLE `admin_info` (
`
admin_nameVARCHAR100 NOT NULL ,
`
admin_passVARCHAR100 NOT NULL
ENGINE MYISAM 
ثم ملف connect.php الخاص بالاتصال بقاعدة البيانات
ثم بتقوم بتعديله حسب بيانات قاعدتك

كود PHP:
                      <?php

/**
 * @author phpman
 * @copyright 2009
 * @file connect.php
 */

 
$DBhost ''// اسم الهوست وغالبا يكون لوكل هوست
 
$DBname ''// اسم القاعدة
 
$DBuser ''// اسم اليوزر
 
$DBpass ''// باسورد القاعدة
 
 
$Connect = @mysql_connect($DBhost,$DBuser,$DBpass); // الاتصال بالقاعدة
 
if(!$Connect){// اذا لم يتم الاتصال
 
echo 'يرجى التاكد من بيانات القاعدة';// طباعة العبارة
 
exit; // ايقاف تنفيذ باقى اكواد الصفحة
 
}
 
 
 
$Select = @mysql_select_db($DBname);// اختيار القاعدة للتعامل معها
 
if(!$Select){// اذا لم يتم الامر
 
echo 'غير قادر على الاتصال بالقاعدة';// طباعة العبارة
 
exit;// ايقاف تنفيذ باقى اكواد الصفحة
}

?>
وملف index.php

كود PHP:
                      <?php

/**
 * @author phpman
 * @copyright 2009
 */

  
session_start();// يدء الجلسة

 
include('Connect.php');// استدعاء ملف الاتصال بالقاعدة
 
 
if(!$_SESSION['admin'])// لو ان الادمن غير مسجل
 
{

     
header('Location:login.html');// يتم تحويله مباشرة الى صفحة التسجيل
     
exit;// ايقاف تنفيذ باقى اكواد الصفحة

 
}
 
 echo 
"اهلا وسهلا بك يا ادمن,, لقد قمت بتسجيل دخولك بنجاح";// طباعة العبارة
 
 

?>
ملف login.php ألخاص بعمليه تسجيل الدخول

كود PHP:
                      <?php

/**
 * @author phpman
 * @copyright 2009
 */
 
session_start(); // بداية الجلسة

 
include('Connect.php'); // استدعاء ملف الاتصال بالقاعدة
 


 
$admin_name trim(strip_tags(addslashes(mysql_real_escape_string($_POST['admin_name']))));// نستقبل اسم المدير من الفورم ,, وضعنا دوال للحماية من الثغرات
 
$admin_pass md5(trim(strip_tags(addslashes(mysql_real_escape_string($_POST['admin_name'])))));// نستقبل باسورد المدير من الفورم ,, وضعنا دوال حماية من الثغرات وشفرنا الباسورد
 
  
$query "SELECT * FROM `admin_info` WHERE `admin_name` = '$admin_name' AND `admin_pass` = '$admin_pass' ";// نتاكد من ان البيانات المدخلة موجودة بالفعل ام لا
  
$result mysql_query($query);// تنفيذ الامر السابق
  
$compare mysql_num_rows($result);// مقارنة البيانات المدخلة بالبيانات الموجودة بالقاعدة
  
  
if($compare != 0)// لو المقارنة لا تساوى صفر اى انه وجد نفس البيانات بالقاعدة
  
{

     
$_SESSION['admin'] = $admin_name ;// يتم تسجيل سيشن باسم المدير
     
echo 'تم تسجيل الدخول جارى تحويلك';// طباعة العبارة تم تسجيل دخولك جارى تحويلك
     
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"2; url=index.php\">";// كود اتش تى ام ال ينقلنا لصفحة الاندكس

  
}
  else{
// لو البيانات المدخلة لا تساوى البيانات الموجودة بالقاعدة

        
echo 'يرجى التاكد من البيانات المدخله';// يطبعلو هذه العبارة

  
}


?>
ملف الhtml ألخاص بيه

login.html

كود PHP:
                      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html>

<
head>
    <
meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <
meta name="author" content="phpman" />

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

<
body>

<
form action="Login.php" method="post" enctype="text/plain">

<
input type="text" name="admin_name" />

<
input type="password" name="admin_pass" />

<
input type="submit" />

<
input type="reset" />

</
form>

</
body>
</
html
ملف الregister.php الخاص بالتسجيل

كود PHP:
                      <?php

/**
 * @author phpman
 * @file register.php
 * @copyright 2009
 */

 
session_start(); // بدء الجلسة

 
include('Connect.php');// استدعاء ملف الاتصال بالقاعدة



 
$admin_name trim(strip_tags(addslashes(mysql_real_escape_string($_POST['admin_name']))));// نستقبل اسم المدير من الفورم ,, وضعنا دوال للحماية من الثغرات
 
$admin_pass md5(trim(strip_tags(addslashes(mysql_real_escape_string($_POST['admin_name'])))));// نستقبل باسورد المدير من الفورم ,, وضعنا دوال حماية من الثغرات وشفرنا الباسورد
 


    
$query "INSERT INTO `admin_info` (`admin_name`, `admin_pass`) VALUES ('$admin_name', '$admin_pass');";// ادخال البيانات الى القاعدة
    
$result mysql_query($query);// تنفيذ الامر السابق
    
    
if($result)// اذا تنفذ الامر بنجاح
    
    
{

         
$_SESSION['admin'] = $admin_name ;// تسجيل سيشن باسم المدير
         
echo 'تم التسجيل بنجاح,, جارى تحويلك';// طباعة العبارة
         
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"2; url=index.php\">";// التحويل الى صفحة الرئيسية

    
} else{// لو ما تنفذ الامر

               
echo 'فشل التسجيل';// طباعة العبارة

    
}


 



?>
ملف register.html

كود PHP:
                      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html>

<
head>
    <
meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <
meta name="author" content="phpman" />

    <
title>التسجيل</title>
</
head>

<
body>

<
form action="Register.php" method="post" enctype="text/plain">

<
input type="text" name="admin_name" />

<
input type="password" name="admin_pass" />

<
input type="submit" />

<
input type="reset" />

</
form>

</
body>
</
html
ملف logout.php

كود PHP:
                      <?php

/**
 * @author phpman

  [IMG]http://cdn5.tribalfusion.com/media/37536.gif[/IMG]    
 * @copyright 2009
 */

 
session_start(); // بدء الجلسة

 
include('Connect.php');// استدعاء ملف الاتصال بالقاعدة
 
 
 
if(!$_SESSION['admin']){// لو المدير ما سجل دخوله

  
echo 'لم تسجل دخولك';// يطبع العبارة

 
}
 
 
 unset(
$_SESSION['admin']);// حذف سيشن الادمن
 
 
echo 'تم تسجيل الخروج'// طباعة العبارة

?>
لن اقوم بشرح الملفات لان الشرح بالتعليقات

قمت بالشرح وكانه تسجيل دخول ادمن
فلن يختلف الفرق كثيرا الا فى اسماء الجداول مثلا

اى شىء انا موجود

تحياتى