سشن (Session) در PHP
سشنها (Sessions) در PHP به شما این امکان را میدهند که دادهها را به صورت موقت بین صفحات مختلف یک وبسایت نگهداری کنید. برخلاف کوکیها که اطلاعات را در سمت کاربر ذخیره میکنند، سشنها اطلاعات را در سمت سرور ذخیره میکنند، به همین دلیل برای مدیریت اطلاعات حساس امنتر هستند.
فهرست مطالب
- سشن چیست؟
- چرا از سشنها استفاده کنیم؟
- نحوه ایجاد و شروع سشن
- ذخیره دادهها در سشن
- دسترسی به دادههای سشن
- حذف و پایان سشن
- نکات امنیتی در استفاده از سشن
- لینکهای مطالعه پیشنهادی
سشن چیست؟
سشنها مجموعهای از دادهها هستند که به طور موقت بین صفحات مختلف وبسایت رد و بدل میشوند و تا زمانی که مرورگر باز است یا سشنها به طور خاص پایان نیافتهاند، معتبر باقی میمانند. این اطلاعات در سرور ذخیره میشود و مرورگر یک شناسه یکتا (Session ID) دریافت میکند تا به دادههای ذخیره شده دسترسی داشته باشد.
چرا از سشنها استفاده کنیم؟
سشنها زمانی مفید هستند که بخواهید اطلاعاتی را به طور موقت و ایمن در بین صفحات مختلف نگهداری کنید. به عنوان مثال:
- ذخیره اطلاعات کاربر پس از ورود به سیستم.
- مدیریت سبد خرید در فروشگاههای آنلاین.
- نگهداری اطلاعات موقت فرمها.
نحوه ایجاد و شروع سشن
برای شروع یک سشن در PHP، ابتدا باید تابع session_start()
را در ابتدای کد خود فراخوانی کنید. این تابع بررسی میکند که آیا سشن قبلاً شروع شده است یا نه، و در صورت نیاز یک سشن جدید ایجاد میکند.
مثال:
<?php
session_start(); // شروع سشن
?>
ذخیره دادهها در سشن
برای ذخیره دادهها در یک سشن، میتوانید از آرایه فوقجهانی $_SESSION
استفاده کنید. این آرایه اطلاعات را به عنوان کلید و مقدار ذخیره میکند.
مثال:
<?php
session_start();
$_SESSION['username'] = 'Mehrdad';
$_SESSION['email'] = 'mehrdad@itvisit.ir';
echo "Session data saved.";
?>
توضیح مثال: در این مثال، اطلاعات کاربر (نام کاربری و ایمیل) با استفاده از آرایه $_SESSION
ذخیره شده است.
دسترسی به دادههای سشن
برای دسترسی به دادههای ذخیره شده در یک سشن، کافی است از $_SESSION
استفاده کنید.
مثال:
<?php
session_start();
echo "Welcome, " . $_SESSION['username'];
echo "Your email is: " . $_SESSION['email'];
?>
توضیح مثال: در این مثال، اطلاعاتی که قبلاً در سشن ذخیره شدهاند، بازیابی و نمایش داده میشوند.
حذف و پایان سشن
برای حذف دادههای ذخیره شده در سشن یا پایان دادن به یک سشن، میتوانید از توابع unset()
، session_unset()
و session_destroy()
استفاده کنید.
مثال حذف یک داده خاص:
<?php
session_start();
unset($_SESSION['username']); // حذف فقط username
?>
مثال پایان دادن به سشن:
<?php
session_start();
session_unset(); // حذف همه دادههای سشن
session_destroy(); // پایان دادن به سشن
?>
توضیح مثال: در مثال اول، فقط داده مربوط به username
حذف میشود، اما در مثال دوم، تمامی دادههای سشن پاک میشوند و سشن به پایان میرسد.
نکات امنیتی در استفاده از سشن
- شناسه سشن (Session ID) را ایمن نگه دارید و از قرار دادن آن در URLها خودداری کنید.
- از کوکیهای امن (Secure Cookies) استفاده کنید تا سشنها فقط از طریق ارتباطات HTTPS ارسال شوند.
- زمان انقضای سشن را تنظیم کنید تا در صورت بیکار ماندن کاربر برای مدت طولانی، سشن پایان یابد.
لینکهای مطالعه پیشنهادی
این مقاله به بررسی سشنها در PHP پرداخت و روشهای مختلفی برای استفاده از آنها را ارائه داد. سشنها ابزار قدرتمندی برای مدیریت اطلاعات موقت در سمت سرور هستند و امنیت بیشتری نسبت به کوکیها دارند.