کوکی‌ها و سشن‌ها

ذخیره اطلاعات کاربر بین صفحات — تفاوت کوکی و سشن، نحوه استفاده و کاربردها

چرا به کوکی و سشن نیاز داریم؟

HTTP یک پروتکل بدون حالت (Stateless) است — یعنی هر درخواست مستقل است و سرور اطلاعات کاربر را بین صفحات به یاد نمی‌سپارد. کوکی و سشن این مشکل را حل می‌کنند.

کوکی (Cookie) چیست؟

کوکی فایل کوچکی است که در مرورگر کاربر ذخیره می‌شود. در درخواست‌های بعدی، مرورگر آن را برای سرور می‌فرستد.

ویژگیکوکی
کجا ذخیره می‌شود؟مرورگر کاربر
حجمحداکثر ۴KB
مدت زمانقابل تنظیم (تا سال‌ها)
امنیتکم — کاربر می‌بیند و تغییر می‌دهد
کاربردیادآوری، تنظیمات، ردیابی

تنظیم کوکی — setcookie()

<?php
// نام، مقدار، زمان انقضا
setcookie("username", "علی", time() + 86400); // ۱ روز

// با تنظیمات کامل
setcookie(
    "theme",
    "dark",
    time() + (86400 * 30), // ۳۰ روز
    "/",
    "",
    true,  // secure (فقط HTTPS)
    true   // httponly (JavaScript دسترسی ندارد)
);
?>

خواندن کوکی

<?php
if (isset($_COOKIE["username"])) {
    echo "سلام " . $_COOKIE["username"];
}
?>

حذف کوکی

<?php
// با تنظیم زمان در گذشته
setcookie("username", "", time() - 3600);
?>

سشن (Session) چیست؟

سشن اطلاعات را روی سرور ذخیره می‌کند. هر کاربر یک ID منحصربه‌فرد دریافت می‌کند (Session ID) که در کوکی مرورگر ذخیره می‌شود.

ویژگیسشن
کجا ذخیره می‌شود؟سرور
حجمنامحدود
مدت زمانتا بستن مرورگر یا timeout
امنیتبالا — کاربر به داده دسترسی ندارد
کاربردورود کاربر، سبد خرید

شروع سشن — session_start()

<?php
// باید در ابتدای صفحه باشد (قبل از هر خروجی)
session_start();

// ذخیره اطلاعات
$_SESSION["user_id"] = 123;
$_SESSION["username"] = "علی";
$_SESSION["role"] = "admin";
?>

خواندن سشن

<?php
session_start();

if (isset($_SESSION["username"])) {
    echo "خوش آمدی " . $_SESSION["username"];
}
?>

حذف سشن

<?php
session_start();

// حذف یک متغیر
unset($_SESSION["username"]);

// حذف تمام سشن
session_destroy();
?>

تفاوت کوکی و سشن

ویژگیکوکیسشن
محل ذخیرهمرورگرسرور
امنیتکمزیاد
حجممحدود (۴KB)نامحدود
عمرطولانی‌مدتکوتاه‌مدت
دسترسی کاربرداردندارد
قانون کلی: برای اطلاعات حساس (ورود، پرداخت) از سشن و برای تنظیمات ساده (تم، زبان) از کوکی استفاده کنید.

این مبحث بخشی از دوره آموزش کامل PHP است.

ابزارهای مرتبط