نگهداری اطلاعات کاربر با Session
پروتکل HTTP بدون حالت (stateless) است، یعنی سرور بهخودیخود چیزی از درخواستهای قبلی کاربر به یاد نمیآورد. سشن راهی است برای نگهداری اطلاعات کاربر بین صفحات مختلف یک سایت، مثلاً برای پیادهسازی سیستم ورود (login). دادههای سشن روی سرور ذخیره میشوند و مرورگر تنها یک شناسهی یکتا (session id) را در قالب کوکی نگه میدارد.
برای استفاده از سشن، ابتدا باید آن را در ابتدای هر صفحه فعال کنید:
<?php
session_start();
$_SESSION['user_id'] = 12;
$_SESSION['username'] = 'ali_rezaei';
?>
در صفحات دیگر نیز پس از session_start()، به همین مقادیر دسترسی خواهید داشت:
<?php
session_start();
if (isset($_SESSION['user_id'])) {
echo "خوش آمدید " . $_SESSION['username'];
} else {
header('Location: login.php');
exit;
}
?>
برای خروج کاربر از حساب (logout)، کافی است سشن را پاک کنید:
session_start();
session_unset();
session_destroy();
نکتهی مهم این است که تابع session_start() باید پیش از هرگونه خروجی HTML فراخوانی شود، در غیر این صورت PHP خطای هدر میدهد. سشنها معمولاً به همراه اعتبارسنجی رمز عبور برای ساخت سیستمهای ورود و ثبتنام استفاده میشوند.