Sessions در PHP

سشن در PHP

جلسه یا Sessions در PHP برای ذخیره اطلاعات کاربر استفاده می‌شود. در کل فرایند سشن در کامپیوتر به معنای باز کردن یک نرم افزار و ایجاد یک سری تغییرات در نرم افزار و بستن آن است. اما در سیستم وب و اینترنت این موضوع به صورت دیگری رخ می‌دهد.

هاست یا سرور سایتی که شما بازدید کننده آن هستید، نمی‌تواند اطلاعاتی راجع به شما به سرور بدهد زیرا مرورگر HTML هیچ اطلاعاتی راجع به شما نمی‌تواند بگوید. و در این شرایط تمایز کاربران از هم دچار مشکل می‌شود و سرور نمی‌تواند به شما خدماتی ارائه دهد. برای حل این مشکل، برنامه نویسی PHP بخشی به نام Sessions را تعریف نموده است. اطلاعات شما با استفاده از این دستور در سرور سایتی که از آن بازدید می‌کنید ذخیره می‌شود. بنابراین برای مشاهده صفحات مختلف یک سایت نیاز نیست در هر صفحه نام کاربری و رمز عبور خود را وارد نمایید.  راحتی ای که شما در بازدید صفحات یک سایت دارید به دلیل این دستور است.

هاست سایتی که به ان وارد می‌شوید در لحظه ورود یک Sessions خاص به نام unique ID – UID برایتان می‌سازد و این اطلاعات را در سشن ذخیره می‌کند. این اطلاعات تا زمانی که در سایت هستید یا Sessions دارای اعتبار است در سرور ذخیره می‌شود همچنین این اطلاعات در کوکی نیز ذخیره می‌شود.

Sessions نیز همانند کوکی ها موقتی هستند و تا یک زمان خاص ذخیره می‌شود.

شروع Sessions در PHP

قبل از ذخیره شدن اطلاعات در سشن، شما باید Sessions را شروع کنید. برای این کار باید دقت داشته باشید که تابع ()session_start باید قبل از برچسب <html> نوشته شود.

این کد به شما اجازه می‌دهد زمانی که کاربر در سایت ثبت نام می‌کند،اطلاعاتش ذخیره شود و یک UID برای session کاربر می‌سازد.

ذخیره متغیرهای session درPHP

درست ترین راه برای ذخیره و بازیابی اطلاعات درون سشن  استفاده از متغیر SESSION_$ در PHP است. به دستور زیر دقت کنید.

 این دستور می‌خواهد تعداد  دفعات نمایش صفحه  را مشخص کند بنابراین خروجی به صورت زیر است:

Pageviews=1

مثال زیر یک دستور است که با تعداد دفعات بازدید یک صفحه را نشان می‌دهد. با استفاده از تابع ()isset متغیری به نام view را که در session ذخیره شده است را بررسی می‌کند، اگر کاربر برای بار اول  وارد سایت شده است عددی برابر با ۱ را نمایش می‌دهد و در ورود های بعدی مقدار آن را افزایش می‌دهد.

 

پاک کردن یک session در PHP

هنگامی که بخواهید اطلاعاتی را از یک session پاک کنید، می‌توانید از تابع های ()unset و ()session_destroy استفاده کنیم. تابع ()unset برای آزاد کردن یک متغیر در session استفاده می‌شود. به مثال زیر دقت کنید:

برای پاک کردن کامل یک session از تابع ()session_destroy استفاده می‌شود:

باید دقت داشته باشید این دستور تمام اطلاعات درون session را پاک می‌کند.

11 نظرات شما

  • baran

    آبان ۶, ۱۳۹۲ at ۱۰:۰۲ ق.ظ
    سلام مطالبتون خیلی خوب بود می خواستم بدونم راجع به کلاسها در پی اچ پی مطلبی دارید اگه آره میشه بزارید تو سایتتون تا استفاده کنم ممنونم
    • بهاران بنی اسدی

      آبان ۶, ۱۳۹۲ at ۱۱:۲۹ ق.ظ
      سلام سپاسگزارم. در حال حاضر برای کلاس ها مطلبی در سایت ندارم اما در ادامه تدریس حتما یک بخش را به کلاس ها در پی اچ پی اختصاص خواهم داد. میتونم برای کمک بهتون این لینک رو معرفی کنم: http://net.tutsplus.com/tutorials/php/object-oriented-php-for-beginners/
  • سعیده

    آذر ۵, ۱۳۹۲ at ۹:۴۴ ب.ظ
    سلام دوست عزیز کارتون با توجه ب رشتتون عالیه مطالب هم هیچی کم ندارن ممنون پایدار باشید
    • بهاران بنی اسدی

      آذر ۵, ۱۳۹۲ at ۱۰:۱۵ ب.ظ
      سلام سپاسگزارم دوست عزيز.
  • سروش

    آذر ۲۵, ۱۳۹۲ at ۹:۲۱ ب.ظ
    سلام اینا رو هم میگفتین بد نبود :‌ Session همیشه باید خط اول کد باشه (فقط ذکر شده بالای تگ HTML) چون در غیر این صورت در شرایط خواص ارور Header میده !‌ فایلی که توش Session استفاده شده باید UTF-8 Without Bom ذخیره باشه حتما وگرنه ارور میده ;)
    • بهاران بنی اسدی

      آذر ۲۶, ۱۳۹۲ at ۹:۲۱ ق.ظ
      سلام نکته اولی که گفتید در درس session در PHP بهش اشاره شده است و جزو نکات اولیه در نوشتن این دستور است.( عنوان : شروع سشن در پی اج پی) برای ذکر نکته دوم از شما ممنونم.
  • aren

    اردیبهشت ۲۳, ۱۳۹۳ at ۸:۲۳ ب.ظ
    بعد از سلام و سپاس این مطالبی ک گفتین در بیشتر سایت ها هستش بهتر نیست ی قدم ب جلو بردارید و بگید ک چطور میشه آمار سایت رو ساخت؟ تعداد اعضا: کاربران آنلاین : و ....
    • بهاران بنی اسدی

      خرداد ۲۶, ۱۳۹۳ at ۶:۰۸ ب.ظ
      سلام دوست خوبم نوشتن یک چنین کدی نیازمند یک سیستم طراحی شده کامله که در نهایت شما بیای خروجی های آماری رو ازش دریافت کنی. اینکه یک کد مشخص بنویسیم و همه جا استفاده بشه عملی نیست. حتی نام گذاری متغیرها هم توی هر کدی میتونه متفاوت باشه چه برسه به ساختار دیتابیس و ارتباط با اون. اسم این سایت رو مبتدی گذاشتیم چون قراره یک نقطه شروع مناسب برای افرادی باشه که تازه دارن با کدنویسی آشنا میشن.
  • ارسلان سلطانی

    تیر ۳۰, ۱۳۹۴ at ۱۲:۰۹ ق.ظ
    با سلام و درود فراوان خدمت دوست خوب . فقط سوال من این بود که زمانیکه من یک فروم برای دریافت وردی از کاربر میسازم و از تابع isset برای اینکه مقدار به صفحه وارد شده یا نه استفاده میکنم و اگر وارد شده هست آنرا در یک کوکی زخیره کند اما زمانیکه تابع اجرا میشود همیشه مقدار true را باز میگرداند هتی اگر مقدار ارسال نشده باشد. یعنی در صورت ریلود صفحه مرورگر
  • mohammad

    تیر ۳۰, ۱۳۹۴ at ۷:۵۹ ب.ظ
    سلام خسته نباشید داخل پروژم از سیشن استفاده کردم واسه لوگین اما سیشنو نمیسازه اول هر دو صفحه استارتشم کردم هیچ مشکلی نداره اما سیشن نمیسازه و جالب اینجاست که صفحه دیگه گفتم سیشن نبود برگرد ولی بر نمیکرده تا اینکه رو یکی از لینکاش کلید کنم تا صفحه رفرش بشه تا برگرده به صفحه لوگین.. مشکل چیه؟
  • ارسلان سلطانی

    تیر ۳۱, ۱۳۹۴ at ۹:۵۹ ق.ظ
    سلام زمانی که من دو ورودی می سازم برای شناسه و کلیمه عبور و آنرا درون یک جلسه مینویسم و یک لینک برای خورج هم میگذارم اما زمان که بالای لینک کلیک میکنم و جلسه خاطمه می یابد اما زمانیکه دوبار در صفحه مرورگر عقب باز مبگردم صفحه لاگ این شده هست

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


© 2013 Mobtadi. All rights reserved.
کلیه حقوق مادی و معنوی برای وبسایت مبتدی محفوظ است.