PHP

الجزء الثامن – الجلسات (Sessions) وملفات الكوكيز (Cookies) في PHP – سلسلة FSWD – PHP

تُعتبر الجلسات (Sessions) و ملفات الكوكيز (Cookies) من الأدوات الأساسية في PHP لحفظ البيانات بين زيارات متعددة لمستخدمي الموقع. دعنا نناقش الفرق بينهما وكيفية استخدامها.


أولاً: الجلسات (Sessions)

الجلسات تُستخدم لتخزين البيانات بين صفحات مختلفة أثناء زيارة المستخدم للموقع. يتيح لك هذا حفظ معلومات مثل بيانات تسجيل الدخول، سلة التسوق، أو أي بيانات تحتاج إلى الاحتفاظ بها عبر زيارات متعددة للموقع.

تتم إدارة الجلسات بواسطة PHP باستخدام معرف الجلسة (Session ID)، وهو معرف فريد يُرسل مع كل طلب من المتصفح.

كيفية استخدام الجلسات في PHP:
  1. بدء الجلسة:

لتتمكن من استخدام الجلسات، يجب عليك أولاً بدء الجلسة باستخدام دالة session_start() في بداية الكود، قبل أي إخراج (HTML أو echo).

  1. تخزين البيانات في الجلسة:

بعد بدء الجلسة، يمكنك تخزين البيانات داخل مصفوفة $_SESSION. هذه المصفوفة تُخزن البيانات بين الزيارات.

  1. استرجاع البيانات من الجلسة:

يمكنك الوصول إلى البيانات المخزنة في الجلسة في أي وقت باستخدام $_SESSION.

  1. إنهاء الجلسة:

يمكنك إنهاء الجلسة باستخدام دالة session_destroy().

مثال على الجلسات

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

// تخزين البيانات في الجلسة
$_SESSION['username'] = "Ahmed";
$_SESSION['email'] = "ahmed@example.com";

// عرض البيانات المخزنة في الجلسة
echo "اسم المستخدم: " . $_SESSION['username'] . "<br>";
echo "البريد الإلكتروني: " . $_SESSION['email'] . "<br>";

// إنهاء الجلسة
// session_destroy();  // هذه الدالة تُنهي الجلسة ولا يمكن الوصول إلى البيانات بعد استخدامها
?>

شرح الكود:

  • استخدمنا session_start() لبدء الجلسة.

  • ثم قمنا بتخزين بيانات username و email في $_SESSION.

  • قمنا بعرض البيانات المخزنة في الجلسة.

  • دالة session_destroy() تُنهي الجلسة، ولا يمكن الوصول إلى البيانات بعدها.

مثال آخر: تحقق من الجلسة
<?php
session_start();

// التحقق مما إذا كانت الجلسة تحتوي على بيانات معينة
if (isset($_SESSION['username'])) {
    echo "مرحبًا، " . $_SESSION['username'] . "!";
} else {
    echo "لم تقم بتسجيل الدخول بعد.";
}
?>

شرح:

  • إذا كانت الجلسة تحتوي على بيانات مثل username، سيتم عرض “مرحبًا” مع اسم المستخدم.

  • إذا لم تكن الجلسة تحتوي على هذه البيانات، سيتم إخبار المستخدم أنه لم يسجل الدخول.


ثانيًا: الكوكيز (Cookies)

الكوكيز (Cookies) هي ملفات نصية صغيرة تُخزن في متصفح المستخدم. تُستخدم لتخزين المعلومات لفترات زمنية معينة (بناءً على تاريخ انتهاء صلاحية الكوكي) مثل تفضيلات المستخدم أو بيانات الجلسة.

يتم إرسال الكوكيز مع كل طلب من المتصفح إلى الخادم، ويمكنك الوصول إليها باستخدام $_COOKIE في PHP.

كيفية استخدام الكوكيز في PHP:
  1. إنشاء الكوكيز:

لتخزين الكوكيز، تستخدم دالة setcookie().

  1. قراءة الكوكيز:

لقراءة الكوكيز، تستخدم مصفوفة $_COOKIE.

  1. حذف الكوكيز:

لحذف الكوكيز، يتم تعيين تاريخ انتهاء صلاحية الكوكي إلى وقت ماضي.

مثال على الكوكيز:

<?php
// إنشاء كوكيز
setcookie("user", "Ahmed", time() + 3600, "/");  // الكوكيز ستظل صالحة لمدة ساعة (3600 ثانية)

// التحقق من وجود الكوكيز
if (isset($_COOKIE['user'])) {
    echo "مرحبًا " . $_COOKIE['user'] . "!";
} else {
    echo "لم يتم تعيين الكوكيز بعد.";
}
?>

شرح الكود:

  • دالة setcookie("user", "Ahmed", time() + 3600, "/") تقوم بإنشاء كوكيز باسم user مع القيمة Ahmed، والوقت المحدد للكوكي هو ساعة (3600 ثانية).

  • نستخدم $_COOKIE['user'] لقراءة الكوكيز.

  • إذا كانت الكوكيز موجودة، سيتم عرض اسم المستخدم، وإذا لم تكن موجودة، سيتم إخبار المستخدم بذلك.

حذف الكوكيز:

لحذف الكوكيز، يجب تعيين تاريخ انتهاء صلاحية الكوكيز إلى وقت ماضي

<?php
// حذف الكوكيز
setcookie("user", "", time() - 3600, "/");  // تعيين الكوكيز لتاريخ ماضي
echo "تم حذف الكوكيز بنجاح.";
?>

شرح:

  • قمنا بتعيين الكوكيز مع قيمة فارغة وتاريخ انتهاء صلاحية ماضي لحذفها

الفرق بين الجلسات والكوكيز:

الميزة الجلسات (Sessions) الكوكيز (Cookies)
مكان التخزين تُخزن في الخادم (Server). تُخزن في متصفح المستخدم.
المدة تستمر طوال فترة الجلسة (حتى إغلاق المتصفح). يمكن تحديد مدة معينة (مثلاً ساعة، يوم).
الأمان أكثر أمانًا، حيث لا يمكن للمستخدم تعديلها. أقل أمانًا، حيث يمكن للمستخدم تعديل الكوكيز.
الاستخدام تُستخدم للبيانات التي تحتاج إلى الحفاظ عليها عبر صفحات متعددة في الجلسة. تُستخدم لتخزين البيانات طويلة المدى مثل تفضيلات المستخدم أو تسجيل الدخول.

ملخص:

  • الجلسات (Sessions) تُستخدم لحفظ البيانات عبر صفحات متعددة في نفس الزيارة. تكون أكثر أمانًا لأنها تُخزن في الخادم.

  • الكوكيز (Cookies) تُخزن في متصفح المستخدم ويمكن تحديد مدة صلاحيتها. تُستخدم لتخزين بيانات مثل تفضيلات المستخدم أو معلومات الجلسة التي تحتاج إلى أن تبقى لفترة أطول.

كود كامل متكامل (Sessions + Cookies)

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

// إنشاء كوكيز لتخزين اسم المستخدم
setcookie("username", "Ahmed", time() + 3600, "/");  // الكوكيز ستظل صالحة لمدة ساعة

// تخزين البيانات في الجلسة
$_SESSION['user_email'] = "ahmed@example.com";

// التحقق من الكوكيز
if (isset($_COOKIE['username'])) {
    echo "مرحبًا " . $_COOKIE['username'] . " من الكوكيز!<br>";
}

// التحقق من الجلسة
if (isset($_SESSION['user_email'])) {
    echo "البريد الإلكتروني المسجل في الجلسة: " . $_SESSION['user_email'] . "<br>";
}

// حذف الكوكيز
setcookie("username", "", time() - 3600, "/");

// إنهاء الجلسة
session_destroy();
?>

 

فرص الربح من الإنترنت

💰 هل تبحث عن طريقة سهلة للربح من الإنترنت؟

ابدأ الآن واكسب أموالًا حقيقية من خلال خطوات بسيطة! 🌟

اضغط وابدأ الربح

📱 اربح من هاتفك فقط!

كل ما تحتاجه هو اتصال بالإنترنت وبعض الوقت ⏳

ابدأ الربح الآن

🚀 اربح المال وأنت في بيتك

الفرصة أمامك الآن وبخطوات سهلة ومضمونة!

من هنا تبدأ رحلتك

🔥 لا تحتاج إلى خبرة أو رأس مال!

اربح الآن من الإنترنت بأبسط الطرق

اضغط هنا للربح

💸 دخل إضافي بدون تعب؟

🤩 هذه فرصتك لتبدأ في الربح من الإنترنت!

سارع الآن

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى