أساسيات البرمجة برمجة المواقع بي اتش بي الجلسات PHP Sessions
الجلسات
PHP Sessions
ماهي الجلسات PHP Sessions
الجلسات PHP Sessions هي عبارة عن طريق تجعل البيانات قابلة للوصول اليها من خلال عدة صفحات على مستوى الموقع بالكامل.بمعنى تمنحك الصلاحية للدخول الى المعلومات على صفحات الويب.
الجلسات PHP Sessions تقوم بانشاء ملف في المجلد - المسار المؤقت على السيرفر حيث يتم تسجيل متغيرات الجلسة فيها وقيمها.وسوف تكون البيانات متوفر لكل الصفحات التي على موقع عند زيارة الصفحات.
مكان ملف الجلسات PHP Sessions المؤقت يتم تحديده من خلال ملف الاعدادات php.ini في السطر session.save_path
وقبل تحديد المسار يجب التاكد من وجود الملف وصحة مساره.
عند بدء الجلسات PHP Sessions تحدث الخطوات التالية
- تقوم لغة البي اتش بي بانشاء معرف نصي مميز طوله 32 من سداسي عشر مثل 3c7foj34c3jj973hjkop2fc937e3443
- تقوم الكوكيز باستدعاء PHPSESSID التى ارسلت الى جهاز المستخدم ليحفظ معرف الجلسة المميز كما في الخطوة السابقة.
- يتم انشاء ملف في مجلد الجلسات المؤقت يحمل نفس القيمة التي ارسلت للجهاز المستخدم.
عندما يريد سكريبت PHP استرداد القيمة من متغير الجلسة ال معرPHP تلقائيا تحصل على قيمة معرف الجلسة المميز من الكوكيز PHPSESSID ثم تبحث في الدليل الخاص ب مجلد الجلسات المؤقت عن الملف الذي يحمل نفس القيمة والتحقق من صحة القيم من خلال مقارنة القيمتين.
الجلسة تنتهي عندما يفقد المستخدم المتصفح أو بعد مغادرة الموقع، سيقوم السيرفر بإنهاء الجلسة بعد مرور فترة محددة من الزمن، عادة 30 دقيقة .
بدء الجلسة في البي اتش بي Starting a PHP Session:
ِالجلسة تبدء عن طريق استدعاء الدالة session_start() تقوم هذه الدالة بفحص هل الجلسة بدات ام لا في حال لم تبداء تقوم ببدء جلسة جديدة. يفضل استخدام هذه الدالة في بداية ملف البي اتش بي.
يتم حفظ المتغيرات وقيمها في المصفوفة المساعدة $_SESSION[] ويمكن الوصول الهذه المتغيرات خلال فترة حياة الجلسة.
مثال على الجلسات في البي اتش بي
في المثال التالي سيتم حفظ المتغيرات الجلسة في counter سنتخدم الدالة isset() لفحص هل تم حفظ المتغيرات في المصفوفة المساعدة ام لا.
<?php session_start(); if( isset( $_SESSION['counter'] ) ) { $_SESSION['counter'] += 1; } else { $_SESSION['counter'] = 1; } $msg = "You have visited this page ". $_SESSION['counter']; $msg .= "in this session."; ?> <html> <head> <title>بدء الجلسة</title> </head> <body> <?php echo ( $msg ); ?> </body> </html> |
إنهاء أو تدمير الجلسة Destroying a PHP Session:
كما توجد دالة لبدء الجلسة ايضا توجد دالة لانهاء او ازالة او تدمير الجلسة session_destroy() وكذلك توجد دالة لازالة القيمة من المصفوفة المساعدة وهي unset().
<?php unset($_SESSION['counter']); ?> |
تشغيل بدء الجلسة تلقائيا Turning on Auto Session:
ليس بالضرورة بدء الجلسة عندما ياتي الزائر لموقعك فيمكنك بدء الجلسلة تلقائية بتشغيل بدء الجلسة تلقائيا من خلال ملف الاعدادات php.ini وذلك من خلال تغير القيمة الى واحد في السطرsession.auto_start .
الجلسات بدون كوكيزSessions without cookies:
يمكن بدء الجلسات بدون كوكيز عندما يكون متصفح المستخدم لا يسمح بحفظ الكوكيز على الجهاز. فالطريقة هنا ارسال معرف الجلسة الى المتصقح باستخدام SID.نستخدم الدالة htmlspecialchars وهي تستخدم لمنع الهجوم على الموقع باستخدام xss.
مثال
<?php
session_start();
if (isset($_SESSION['counter'])) {
$_SESSION['counter'] = 1;
} else {
$_SESSION['counter']++;
}
$msg = "You have visited this page ". $_SESSION['counter'];
$msg .= "in this session.";
echo ( $msg );?>
<p>
To continue click following link <br />
<a href="test.php?<?php echo htmlspecialchars(SID); ?>">aaa</a>
</p>
|
إذا أعجبك المقال فتابعني وشكرا
تويتر aalmahallawi@
تويتر aalmahallawi@
التسميات: PHP بي اتش بي تعلم دروس حتى الاحتراف
<< الصفحة الرئيسية