شرح الكوكيز (Cookies) في PHP

أحياناً تحتاج أن يتذكر الموقع شيئاً عن المستخدم بين الزيارات، مثل اللغة المفضلة أو وضع الواجهة. هنا نستخدم Cookies.

الكوكيز تُخزن في متصفح المستخدم، وتُرسل مع كل طلب إلى الخادم ضمن نفس النطاق.

ما هي Cookies في PHP؟

الكوكيز هي بيانات نصية صغيرة يحفظها المتصفح. في PHP يمكنك إنشاءها عبر setcookie() وقراءتها من $_COOKIE.

الخادم يرسل Cookie → المتصفح يحفظها → يرسلها تلقائياً في الطلبات القادمة

مثال 1: إنشاء Cookie باستخدام setcookie()

الكود:

<?php
$name = "user_lang";
$value = "ar";

setcookie($name, $value, time() + (86400 * 30), "/");
?>

شرح كود PHP:

  • 86400 عدد الثواني في اليوم.
  • القيمة (86400 * 30) تعني انتهاء بعد 30 يوماً.
  • "/" يجعل الكوكيز متاحة في كامل الموقع.
مهم: يجب استدعاء setcookie() قبل أي مخرجات HTML، وإلا ستظهر مشكلة headers already sent.

مثال 2: قراءة Cookie من $_COOKIE

الكود:

<?php
if (isset($_COOKIE["user_lang"])) {
    echo "لغتك المفضلة: " . $_COOKIE["user_lang"];
} else {
    echo "لم يتم ضبط اللغة بعد";
}
?>

نستخدم isset() لتجنب الوصول إلى مفتاح غير موجود داخل $_COOKIE.

مثال 3: حذف Cookie

الكود:

<?php
setcookie("user_lang", "", time() - 3600, "/");
?>

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

متى نستخدم Cookies؟

  • تذكر اللغة المفضلة.
  • تذكر الثيم (فاتح/داكن).
  • تخزين معرف بسيط لتجربة المستخدم (غير حساس).

Cookies vs Sessions باختصار

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

أفضل ممارسات الأمان للكوكيز

  • لا تخزن كلمات مرور أو بيانات مالية في الكوكيز.
  • استخدم httponly وsecure وsamesite عندما يلزم.
  • تحقق دائماً من صحة أي قيمة قادمة من $_COOKIE.
تحذير: الكوكيز قابلة للتعديل من طرف المستخدم، لذلك لا تعتبر مصدراً موثوقاً بدون تحقق.

أخطاء شائعة للمبتدئين

  • استدعاء setcookie() بعد طباعة HTML.
  • قراءة $_COOKIE بدون isset().
  • تخزين بيانات حساسة مباشرة داخل الكوكيز.
  • نسيان تحديد مسار مناسب عند إنشاء الكوكيز.

تمرين تطبيقي سريع

  1. أنشئ Cookie باسم site_theme بقيمة dark لمدة 7 أيام.
  2. اعرض رسالة مختلفة حسب قيمة الكوكيز.
  3. أضف زر لحذف الكوكيز عبر تعيين وقت انتهاء في الماضي.

الأسئلة الشائعة — FAQ

ما هي Cookies في PHP؟

بيانات صغيرة يخزنها المتصفح لتذكر معلومات المستخدم بين الزيارات.

كيف أنشئ Cookie؟

عبر setcookie() قبل أي مخرجات HTML.

كيف أقرأ Cookie؟

باستخدام $_COOKIE بعد التحقق من وجود المفتاح.

هل الكوكيز مناسبة للبيانات الحساسة؟

لا، الأفضل استخدام Sessions للبيانات الحساسة.

ممتاز! الآن فهمت كيف تعمل Cookies في PHP ومتى تستخدمها. في الدرس القادم سنتعلم Sessions لإدارة بيانات المستخدم بشكل أكثر أماناً.
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن