کار با سیشن ها (آموزش SESSION در php)

  • آپدیت شده در تاریخ

کار با سیشن ها

$_SESSION متغییر پایه ای برای ذخیره موقت اطلاعاتی در مورد کاربر فعلی است ، برای مثال شما در حال بازدید از یک وبسایت هستید ، اما سرور دقیقا نمی داند شما کی هستید ، تنها راه برای شناسایی کاربر فعلی ، استفاده از کوکی و سئشن است که در مقاله  کار با سیشن ها در php به آن می پردازیم .

$_SESSION به شما اجازه ذخیره اطلاعاتی از کاربر می دهد که قابل دسترسی در هر صفحه ای از سایت است البته تا زمانی که سیشن مورد نظر فعال باشد.

دلیل استفاده گسترده از سیشن (SESSION) می تواند به دلیل محدودیتی که در زیرساخت پروتکل HTTP است ،در نظر گرفت .

چراکه پروتکل HTTP از پایه Stateless است و هیچ گونه اطلاعاتی از کاربر فعلی نمی دهد درواقع کاربران را از هم تشخیص نمی دهد و نمی داند این کاربر قبلا چه صفحاتی را مرور کرده است ، و غیره . برای همین موضوع کار با سیشن ها و کار با کوکی ها در php و امنیت سئشن در php مطرح شد .

کار با سیشن ها در PHP چگونه است ؟

$_SESSION در PHP یک آی دی یکتا برای هر کاربر می سازد ، این ID ها در کوکی یا جایی در آدرس  URL ذخیره میشود ، به هر حال این داده های سیشن در سرور ذخیره می شوند.

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

شروع کار با سیشن ها

برای شروع کار با سیشن ها در PHP ، ما از تابع session_start() استفاده می کنیم . این تابع باید اول هر نوع کد html یا متنی باشد . مانند کد زیر :

زمانی که session_start() فراخوانی می شود ، یک سیشن جدید ایجاد می کند یا اینکه سیشن قبلی را ادامه می دهد.

ذخیره و بازیابی متغیرهای سیشن

زمانی که یک سیشن فعال باشد ، با استفاده از $_SESSION می توانیم مقادیر را در آن ذخیره کنیم که بعدا از طریق هر اسکریپت PHP در سرور قابل دسترس خواهد بود

بار اول که متغیر ذخیره شد ، می توانیم آن را در همان وبسایت هر کجا که خواستیم بازیابی کنیم . تنها کاری کا باید انجام بدیم ساخت سیشن با همان اسم در مثال بالا و گرفت خروجی از مقدار آن است.

حذف یا پاکسازی سیشن

بهتر است زمانی که کار با سیشن ها نظر تمام شد آن را پاک کنیم . برا حذف آن کافیست از تابع unset() استفاده کنیم

یا اینکه برای حذف کلیه سیشن ها از session_destroy() بهره ببریم .

امیدوارم مقاله کوتاه کار با سیشن ها (آموزش SESSION در php) مفید بوده باشه . برای تعیین تاریخ انقضا در سئشن و افزایش امنیت SESSION کلیک کنید .

هرگونه سوال و یا مشکلی داشتید لطفا از طریق نطرات ارسال کنید. سریعا ، پاسخگوی سوالات شما هستیم.

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱۱)

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

  1. ساشا ۲۰ اسفند ۱۳۹۹

    با سلام
    من یه صفحه ی ورود گذاشتم که قبلا واسه یه سایت دیگه بود و کار میکرد. روی لوکال هم کار میکنه. الان واسه یه سایت دیگه گذاشتم اما خطای زیر رو میده :
    Warning: session_start(): open(/home/tmp//sess_9auphrla8tu8jg2okv34coo7d6, O_RDWR) failed: No such file or directory (2) in /home1/blourmir/public_html/login.php on line 2
    ممنون میشم راهنمایی کنید

    پاسخ
    1. حسن شفیعی ۲۰ اسفند ۱۳۹۹

      سلام. یک فولدر tmp ایجاد و پرمیشن ۷۷۷ بدید و از این کد هم در اول فایل php خود استفاده کنید
      ini_set(‘session.save_path’, ‘tmp’);

      پاسخ
  2. hamedshabani ۲ مرداد ۱۳۹۹

    سلام ی سوال داشتم این سیشین کجا باید استفاده کنم .یعنی کجای کد.تمام مثال ها فقط خام کد نوشتن.اما کجا باید استفاده کنم؟در صفحه لاگین؟ ,و اینکه من دوتا گزینه برای ورود به سایت گذاشتم اسم و فامیلی؟

    پاسخ
  3. hamedshabani ۲ مرداد ۱۳۹۹

    سلام ی سوال داشتم این سیشین کجا باید استفاده کنم .یعنی کجای کد.تمام مثال ها فقط خام کد نوشتن.اما کجا باید استفاده کنم؟در صفحه لاگین؟

    پاسخ
    1. حسن شفیعی ۲ مرداد ۱۳۹۹

      سلام. بله در بخش هایی که نیاز به دادن دسترسی به کاربر دارید مثلا بعد لاگین

      پاسخ
  4. aa ۲۵ فروردین ۱۳۹۷

    ممنون ولی میشه بگین چرا اون کدی که واستون ارسال کردن جواب نمیده میخام دلیل اجرا نشده اون رو بدونم
    ممنون از میشم اگه جواب بدین

    پاسخ
    1. حسن شفیعی ۲۵ فروردین ۱۳۹۷

      دوست عزیز شما در نظرات قبلی کدی ارسال نکردید.

      پاسخ
  5. aa ۲۴ فروردین ۱۳۹۷

    میخام بعد از هر بار که load میشه بگه باز چندم هست . ولی کار نمی کنه

    پاسخ
    1. حسن شفیعی ۲۵ فروردین ۱۳۹۷

      برای اینکار بهتره یه کانتر بندازید و مقدار عددی رو در سیشن ذخیره و با هر بار اجرای صفحه , یکی بهش اضافه و ذخیره کنید.

      پاسخ
  6. aa ۲۴ فروردین ۱۳۹۷

    ‎ سلام ببخشید مشکل این کد چیه؟
    و این که session ها در لوکال فرقشون با هاست چیه. ممنون

    پاسخ
    1. حسن شفیعی ۲۴ فروردین ۱۳۹۷

      سلام . هیچ مشکلی نداره . بهتره مقاله های انواع خطاها در php و <strong>output buffering در php را مطالعه کنید.

      موفق باشید.

      پاسخ
دوره های آموزشی