بسم الله الرحمن الرحيم
قد يعمل الشخص سكريبت او في موقعه ، يريد حماية صفحات لا يريد ان يشاهدها كل الاعضاء .. بل تكون لاشخاص محددين ، ولنقل الاعضاء الذين يملكون عضوية بالموقع ..
هناك طريقتان ..
1. الجلسات ( SESSION ) .
2. الكعكات ( ****** ) او الكوكيز .
وطبعا الجلسات هي افضل واسهل واكثر امان من الكعكات .. وخصوصا يفضل استخدامها في لوحات التحكم 
اولا كيف نسجل جلسة جديدة للزائر ؟
طبعا لا تنسى انه يتم زراعة جلسة جديدة لكل زائر يتصفح موقعك باستخدام نظام الجلسات
الان لاحظ معي .. كيف نبدأ بإنشاء جلسة جديدة لكل زائر ..؟؟
طبعا هذا السؤال سهل جدا الاجابة عليه ( لان نظام الجلسات بسيط جدا ، ستلاحظ ذلك في نهاية الدرس ) ..
الان سنعمل صفحة نضع بها اسم للدخول به & رقم سري للدخول به كود:
<?
// save this code in admin_user.php
$admin_user = "naif";
$admin_pass = "123456";
?>
الان سنعمل صفحة اسمها login.php ونضع بها كود الفورم حق تسجيل الدخول ونعين الفورم الى صفحة اسمها done.php حتى يتم التفصيل بدون تعقيد ويفهم الدرس ،كود:
<?
ECHO " <form method='post' action='done.php'>
User Name : <input type='text' name='User_Name'> <br>
User Pass : <input type='password' name='User_Pass'><br>
<input type='submit' value='دخول'></form>";
?>
حقل لاسم المستخدم اسمه = User_Name
حقل للرقم السري للمستخدم = User_Pass
الان صفحة done.php سنتأكد من ان الاسم والرقم للمستخدم تساوي نفس المعلومات الموجودة في ملف admin_user.php لو تذكر .. هالصفحة ..
وكما لا ننسى سنسجل الجلسة في هذه الصفحة كود:
<?
session_start();
// ندرج ملف admin_user.php
include("admin_user.php");
$user = trim($_POST['User_Name']);
$pass = trim($_POST['User_Pass']);
// شرط تساوي المعلومات
if( ($user == $admin_user) && ($pass == $admin_pass) ){
// نسجل له الجلسة
$_SESSION['ses_name'] = "$user";
// رسالة له ان تم تسجيل الدخول
ECHO " تم تسجيل الدخول بنجاح ";
// نظهر له رابط بالذهاب الى الصفحة المحمية
ECHo "<a href='admin_page.php'> دخول لصفحة الادمن </a> ";
// واذا كانت المعلومات خطا
} else {
ECHO " عفوا تأكد من صحة المعلومات ";
}
?> طبعا بالكود السابق ، ادرجنا الملف الذي يحتوي على معلومات المدير .. وعملنا مقارنة بينها وبين المعلومات المرسله من الفورم ..
اذا تساوت المعلومات نسجل له جلسه باسم ses_name لاحظ هالشيء ايضا القيمة هي مثلا ( على سبيل المثال ) اسم المستخدم ..
طبعا نلاحظ دالة ببداية الصفحة تخص الجلسات وهي التي تعمل جلسة جديدة للزائر اذا لم تكن له جلسة خاصة دائما وابداً لانشاء جلسة جديدة او عندما نريد استخدام الجلسات نقوم بوضع الكود التالي باعلى الصفحة :
كود:
<?
session_start();
?>
الكود السابق الفائدة منه كما حدثت سابقا انها تقوم بانشاء جلسة جديدة للزائر ، طبعا هذا اذا لم يكن الزائر قد تم تسجيل جلسه تخصه 
طبعا اظهرنا له رابط بالصفحة المحية ولنفرض ان اسمها هي admin_page.php ..
انتهينا من الجزء الاول .. نأتي للجزء الثاني ..
الان بعد الدخول نأتي الى صفحة admin_page.php
وسوف نتعلم كيف نتأكد من وجود الجلسة الخاصة بالزئر اي انه سجل دخوله بنجاح ..
واذا لم يسجل نظهر له صفحة الفورم تسجيل الدخول لاحظ معي في هذا الكود لصفحة admin_page.php
كود:
<?
session_start();
if( isset($_SESSION['ses_name']) ){
ECHO " محتويات الادمن ";
ECHO " مرحبابك يا ".$_SESSION['ses_name']." شكراً لتسجيل دخولك ";
} else {
// نظهر له رسالة بان الصفحة غير متاح له مشاهدة محتواها يجب عليه التسجيل
ECHO " عفوا يجب عليك تسجيل الدخول لمشاهدة هذه الصفحة ! ";
// او ندرج صفحة تسجيل الدخول
include("login.php");
}
?> طبعا لازم نبدا بدالة session_start() ..
لاحظ تأكدنا من ان متغير الجسلة تم تسجيله لهذا الزائر عن طريق الدالة isset() .. ويمكننا بواسطة الدالة empty() ايضا
.. طبعا لاحظنا كيف نظهر للمدير اسمه عن طريق
كود:
<?
echo $_SESSION['ses_name'];
?>
كم هي سهله الجلسات 
الان نريد ان نوفر خيار للمدير تسجيل الخروج ، كيف سيتم ذلك طبعا بكل سهله كما فعلنا في التسجيل .. لاحظ ( نلغي المتغير فقط ) باستخدام الكود التاليكود:
<?
unset( $_SEESION['ses_name'] );
?>
طبعا معروفه الدالة unset() تقوم بالغاء اي متغير .. لكن نريد ايضا تمدير هذه الجسلة نهائيا لهذا الزائر كيف ؟كود:
<?
session_destroy();
?>
وعليه يصبح صفحة تسجيل الخروج مثلا باسم logout.php تحتوي على الكود التالي كود:
<?
session_start();
unset( $_SESSION['ses_name'] );
session_destroy();
echo " تم تسجيل الخروج ";
echo "<br><a href='admin_page.php'>صفحة الادمن</a>";
?>
الان سنضيف في صفحة admin_page.php رابط لصفحة تسجيل الخروج كود:
<?
session_start();
if( isset($_SESSION['ses_name']) ){
ECHO " محتويات الادمن ";
ECHO " مرحبابك يا ".$_SESSION['ses_name']." شكراً لتسجيل دخولك ";
echo "<br>";
echo " لتسجيل خروج <a href='logout.php'> اضغط هنا </a> ";
} else {
// نظهر له رسالة بان الصفحة غير متاح له مشاهدة محتواها يجب عليه التسجيل
ECHO " عفوا يجب عليك تسجيل الدخول لمشاهدة هذه الصفحة ! ";
// او ندرج صفحة تسجيل الدخول
include("login.php");
}
?> طبعا هذا نظام الجلسات بشكل كامل وسهل جداً ..
ماذا لو اردنا ان يكون هناك عدة مستخدمين .. اي الاستعلام عن المستخدم من قاعدة البيانات ؟؟
كل ماسنحتاج هو في صفحة done.php .. نستعلم عن الاسم من القاعده ان توفر نسجل له جلسة والا لا نسجل له جلسة ..كود:
<?
session_start();
// ندرج ملف admin_user.php
include("admin_user.php");
$user = trim($_POST['User_Name']);
$pass = trim($_POST['User_Pass']);
// شرط تساوي المعلومات
$SQL = mysql_query(" select * from members where name='".$user."' and password='".$pass."' ") or die (mysql_error());
// التحقق من ان المعلومات صحيحة
if( mysql_num_rows($SQL) != "0" ){
// نطلع بيانات العضو
$info = mysql_fetch_array($SQL);
// نسجل له الجلسة
$_SESSION['ses_name'] = "$info[name]";
// رسالة له ان تم تسجيل الدخول
ECHO " تم تسجيل الدخول بنجاح ";
echo "<br>";
echo "<a href='admin_page.php'>صفحة الادمن</a>";
// واذا كانت المعلومات خطا
} else {
ECHO " عفوا تأكد من صحة المعلومات ";
}
?> هذا بكل بساطة .. في نظام الجلسات وطريقة التعامل معها ... ملاحظه مهمه جدا ، ابدأ بدالة انشاء الجلسة session_start() قبل دالة طباعه مثل print او كود HTML والا ستواجه مشكلة ان النظام لن يعمل ..