إدارة الجلسات وملفات تعريف الارتباط (Sessions & Cookies) في PHP
إدارة الجلسات وملفات تعريف الارتباط (Sessions & Cookies) في PHP
إدارة الجلسات وملفات تعريف الارتباط تُعد من الأدوات الأساسية لتتبع تفاعلات المستخدمين وتخصيص تجربتهم على مواقع الويب. تساعد الجلسات في تخزين بيانات مؤقتة على الخادم لكل مستخدم، بينما تُستخدم ملفات تعريف الارتباط لتخزين بيانات على جهاز المستخدم.
الجلسات (Sessions)
الجلسات تُستخدم لتخزين معلومات المستخدم على الخادم طوال مدة تفاعله مع الموقع.
بدء جلسة جديدة:
للبدء باستخدام الجلسة، يجب استدعاء session_start()
في بداية كل صفحة تحتاج إلى استخدام الجلسات.
<?php session_start(); $_SESSION['username'] = 'Ahmed'; echo "Session set for user: " . $_SESSION['username']; ?>
الوصول إلى بيانات الجلسة:
يمكن استرجاع بيانات الجلسة في أي صفحة بعد بدء الجلسة.
<?php session_start(); echo "Welcome back, " . $_SESSION['username']; ?>
إزالة بيانات الجلسة:
لإزالة بيانات معينة من الجلسة، يمكن استخدام unset()
.
<?php session_start(); unset($_SESSION['username']); ?>
إنهاء الجلسة:
لإنهاء الجلسة بالكامل، يتم استخدام session_destroy()
.
<?php session_start(); session_destroy(); ?>
ملفات تعريف الارتباط (Cookies)
ملفات تعريف الارتباط تُستخدم لتخزين بيانات صغيرة على جهاز المستخدم. تُعد مفيدة لتخزين معلومات تدوم لفترة طويلة، مثل تفضيلات المستخدم.
إنشاء ملف تعريف ارتباط:
استخدم الدالة setcookie()
لإنشاء ملف تعريف ارتباط.
<?php setcookie('username', 'Ahmed', time() + (86400 * 7)); // صالح لمدة 7 أيام ?>
الوصول إلى ملف تعريف ارتباط:
يمكن قراءة بيانات ملف تعريف الارتباط باستخدام المتغير $_COOKIE
.
<?php if(isset($_COOKIE['username'])) { echo "Cookie Value: " . $_COOKIE['username']; } ?>
حذف ملف تعريف ارتباط:
لتعطيل ملف تعريف ارتباط، اضبط وقت انتهائه إلى وقت سابق.
<?php setcookie('username', '', time() - 3600); ?>
الفرق بين الجلسات وملفات تعريف الارتباط
- الجلسات: تُخزن البيانات على الخادم، مما يجعلها أكثر أماناً. تُستخدم لتخزين معلومات حساسة مثل بيانات تسجيل الدخول.
- ملفات تعريف الارتباط: تُخزن البيانات على جهاز المستخدم، مما يجعلها أقل أماناً ولكنها تُعد مفيدة لتخزين بيانات تدوم لفترات طويلة.
استخدام الجلسات وملفات تعريف الارتباط معًا
يمكنك استخدام الجلسات وملفات تعريف الارتباط معًا لتقديم تجربة مخصصة للمستخدم.
مثال عملي:
- عند تسجيل دخول المستخدم، يتم تخزين اسم المستخدم في ملف تعريف ارتباط.
- في الوقت نفسه، يتم تخزين حالة تسجيل الدخول في الجلسة.
<?php session_start(); setcookie('username', 'Ahmed', time() + (86400 * 7)); $_SESSION['logged_in'] = true; ?>
التحقق من حالة تسجيل الدخول:
<?php session_start(); if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true) { echo "Welcome, " . $_COOKIE['username']; } else { echo "Please log in."; } ?>
أفضل الممارسات
- لا تُخزن معلومات حساسة في ملفات تعريف الارتباط.
- استخدم التشفير عند التعامل مع بيانات الجلسات وملفات تعريف الارتباط.
- تأكد من تحديد وقت انتهاء معقول لملفات تعريف الارتباط.
- قم بتحديث معرف الجلسة (
session_regenerate_id()
) بعد تسجيل الدخول لتحسين الأمان.
إدارة الجلسات وملفات تعريف الارتباط تتيح للمطورين تقديم تجربة مخصصة وآمنة للمستخدمين مع تحسين التفاعل بين المستخدم والتطبيق.