آموزش رایگان PHP

آموزش جامع Session در PHP به زبان ساده + پروژه عملی شبیه‌ساز

1405/05/01 20:07 محراب حسن زاده
آموزش جامع Session در PHP به زبان ساده + پروژه عملی شبیه‌ساز

سشن (Session) در PHP چیست؟

پروتکل HTTP یک پروتکل Stateless (بدون حالت) است. این یعنی سرور وب پس از فرستادن پاسخ به مرورگر کاربر، کاملاً فراموش می‌کند که این کاربر کیست! برای حل این مشکل و حفظ اطلاعات کاربر در صفحات مختلف (مثل وضعیت لاگین، سبد خرید و...) از دو ابزار به نام‌های Cookie و Session استفاده می‌شود.

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

نحوه کارکرد سشن در PHP

فرآیند کار با سشن بسیار ساده است. وقتی شما یک سشن را شروع می‌کنید، PHP بررسی می‌کند که آیا کاربر از قبل شناسه سشن دارد یا خیر. اگر نداشت، یک شناسه جدید و یکتا برای او می‌سازد و فایل مربوط به آن را روی سرور ایجاد می‌کند.

۱. شروع سشن با متد session_start

برای استفاده از سشن در PHP، حتماً باید قبل از ارسال هرگونه خروجی HTML به مرورگر، تابع session_start() را فراخوانی کنید. این تابع سشن فعلی را فعال کرده یا یک سشن جدید می‌سازد.


// شروع سشن - باید اولین خط کد قبل از هر تگ HTML باشد
session_start();

// ذخیره اطلاعات در سشن
$_SESSION["username"] = "Morteza";
$_SESSION["email"] = "info@example.com";

echo "سشن با موفقیت ایجاد شد و مقادیر ذخیره شدند.";

۲. خواندن اطلاعات از سشن

پس از شروع سشن در هر صفحه دیگری از سایت، می‌توانید به متغیر سوپرگلوبال $_SESSION دسترسی داشته باشید و اطلاعات کاربر را بخوانید:


session_start();

// بررسی وجود داشتن متغیر در سشن
if (isset($_SESSION["username"])) {
    echo "خوش آمدید، " . $_SESSION["username"];
} else {
    echo "شما وارد سیستم نشده‌اید.";
}

۳. تغییر و به‌روزرسانی مقادیر سشن

برای ویرایش اطلاعات موجود در سشن، کافی است مقدار جدید را به همان کلید اختصاص دهید:


session_start();

// تغییر نام کاربری ذخیره شده
$_SESSION["username"] = "Ali";

۴. حذف متغیرها و نابود کردن سشن

گاهی اوقات مانند فرآیند خروج از حساب کاربری (Logout)، نیاز دارید که سشن را پاک کنید. برای این کار دو متد اصلی وجود دارد:

  • session_unset(): تمام متغیرهای سشن فعلی را آزاد و پاک می‌کند.
  • session_destroy(): کل سشن و فایل‌های مربوط به آن را روی سرور به طور کامل نابود می‌کند.

session_start();

// حذف تمامی متغیرهای سشن
session_unset();

// نابود کردن کل سشن
session_destroy();

echo "سشن با موفقیت پاک شد و شما خارج شدید.";

نکات امنیتی بسیار مهم در مدیریت سشن‌ها

سشن‌ها به دلیل ذخیره اطلاعات حساس مانند وضعیت لاگین کاربران، هدف اصلی هکرها برای حملاتی چون Session Hijacking (ربودن سشن) هستند. برای افزایش امنیت سشن‌ها در PHP، حتماً موارد زیر را رعایت کنید:

۱. تولید مجدد شناسه سشن (Session ID)

پس از هر بار ورود کاربر یا تغییر سطح دسترسی او، شناسه سشن را مجدداً تولید کنید تا هکرهای احتمالی نتوانند از شناسه‌های قدیمی استفاده کنند:


session_start();

// تولید مجدد شناسه سشن و حذف شناسه قبلی
session_regenerate_id(true);

۲. تنظیم کوکی‌های سشن به صورت ایمن

قبل از شروع سشن، می‌توانید تنظیمات کوکی سشن را به گونه‌ای قرار دهید که فقط از طریق پروتکل امن HTTPS قابل دسترسی باشد و کدهای جاوااسکریپت نتوانند به آن دسترسی پیدا کنند (محافظت در برابر XSS):


session_start([
    'cookie_lifetime' =--> 86400, // مدت زمان اعتبار کوکی
    'cookie_secure' => true,    // فقط روی HTTPS ارسال شود
    'cookie_httponly' => true,  // عدم دسترسی جاوااسکریپت به کوکی سشن
    'use_only_cookies' => true  // سشن فقط از طریق کوکی کار کند
]);

نتیجه‌گیری

سشن‌ها ابزاری قدرتمند و امن برای ذخیره اطلاعات موقت کاربران در وب‌سایت‌های PHP هستند. با رعایت نکات امنیتی مانند بازسازی شناسه سشن و استفاده از فلگ‌های HttpOnly، می‌توانید برنامه‌های تحت وب خود را در برابر نفوذ هکرها بیمه کنید.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش تغییر المان‌های DOM: ویرایش متن، سبک‌ها و کلاس‌ها در جاوا اسکریپت - راهنمای کامل با مثال‌ها
1403/08/02 21:01

آموزش تغییر المان‌های DOM: ویرایش متن، سبک‌ها و کلاس‌ها در جاوا اسکریپت - راهنمای کامل با مثال‌ها

مطالعه بیشتر
آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت
1402/05/23 00:08

آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت

مطالعه بیشتر
آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed
1402/06/05 23:43

آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed

مطالعه بیشتر
آموزش ساخت یک گالری تصویر با استفاده از جاوا اسکریپت: راهنمای گام به گام
1403/08/03 16:57

آموزش ساخت یک گالری تصویر با استفاده از جاوا اسکریپت: راهنمای گام به گام

مطالعه بیشتر
آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب
1403/08/11 21:20

آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب

مطالعه بیشتر
مقدمه‌ای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on
1402/06/28 23:53

مقدمه‌ای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on

مطالعه بیشتر
آموزش ساخت یک Todo List با استفاده از DOM و جاوا اسکریپت: راهنمای گام به گام
1403/08/03 16:30

آموزش ساخت یک Todo List با استفاده از DOM و جاوا اسکریپت: راهنمای گام به گام

مطالعه بیشتر
آموزش ساخت دیتابیس و جدول برای پروژه PHP طبق استاندارد گوگل
1405/05/04 23:38

آموزش ساخت دیتابیس و جدول برای پروژه PHP طبق استاندارد گوگل

مطالعه بیشتر
توابع فلش (Arrow Functions) در جاوا اسکریپت: ساده‌سازی کد با استفاده از ES6
1403/06/02 20:36

توابع فلش (Arrow Functions) در جاوا اسکریپت: ساده‌سازی کد با استفاده از ES6

مطالعه بیشتر
آموزش جامع و استاندارد کار با رشته‌ ها در PHP
1405/04/27 20:59

آموزش جامع و استاندارد کار با رشته‌ ها در PHP

مطالعه بیشتر
آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child
1402/06/10 18:22

آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child

مطالعه بیشتر
کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد
1402/06/18 22:55

کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد