ذخیره امن اطلاعات کاربر بهصورت موقت روی سرور و حفظ وضعیت احراز هویت در صفحات مختلف.
پروتکل HTTP یک پروتکل Stateless (بدون حافظه) است. سشنها راهکار PHP برای به یاد داشتن کاربر هنگام جابهجایی بین صفحات وبسایت هستند. اطلاعات سشن روی سمت سرور ذخیره میشود و تنها یک شناسه یکتا (Session ID) از طریق کوکی به مرورگر کاربر ارسال میگردد.
پیش از هرگونه دسترسی یا مقداردهی به متغیر $_SESSION، باید تابع session_start() در **ابتداییترین خط کد PHP** (قبل از هرگونه خروجی HTML) فراخوانی شود.
<?php
// Must be called before any HTML output
session_start();
// Store data in session
$_SESSION['user_id'] = 42;
$_SESSION['username'] = 'reza_dev';
// Read session value safely
if (isset($_SESSION['username'])) {
echo "Logged in as: " . $_SESSION['username'];
}
?>
برای پاکسازی کامل سشن و خروج کاربر، از ترکیب session_unset() (پاک کردن آرایه متغیرها) و session_destroy() (حذف فایل سشن از سرور) استفاده میشود.
خطای Headers already sent
فراخوانی session_start() پس از ارسالی هرگونه کاراکتر، فاصله یا تگ HTML به مرورگر با خطا مواجه خواهد شد.
آسیبپذیری Session Hijacking
پس از ورود موفقیتآمیز کاربر، همیشه تابع session_regenerate_id(true) را اجرا کنید تا شناسه سشن جدید جایگزین شناسه قبلی شود.
اسکریپت سادهای برای ورود بنویسید که نام کاربر را در سشن قرار دهد و در صورت باز کردن مجدد صفحه، پیام "خوش آمدید [نام کاربر]" را نشان دهد و لینکی برای خروج (logout.php) ارائه دهد.