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

Sessionها در فریمورک Yii


Session یا نشست یا جلسات، به داده ها این قابلیت را می دهند که در صفحات مختلف قابل دسترسی باشند.session یک فایل روی server در یک پوشه موقت می سازد که در آن تمام متغیرهای session ذخیره می شوند. این اطلاعات در طول بازدید یک کاربر خاص، برای تمام صفحات وب سایت شما، قابل دسترسی می باشند.

وقتی یک session  شروع می شود، چه مراحلی اتفاق می افتد :

  • PHP یک ID منحصر به فرد برای آن session خاص ایجاد می کند.
  • یک cookie به نام PHPSESSID در سمت client (به مرورگر) ارسال می شود.
  • server یک فایل در پوشه موقت ایجاد می کند که در آن تمام متغیرهای session  ذخیره می شوند.
  • هنگامی که server می خواهد، مقدارِ یک متغیر session  را بازیابی کند، PHP به طور خودکار آی دی منحصر به فرد session را از کوکی PHPSESSID می گیرد. سپس، آن را در دایرکتوری موقت خود برای پیدا کردن فایل مورد نظر جستجو می کند.

برای شروع یک session، باید تابع session_start() را فراخوانی کنید. تمام متغیرهای session، در متغیر گلوبال $_SESSION ذخیره می شوند. برای بررسی اینکه آیا متغیر session سِت شده است یا خیر، می توانید از تابع isset() استفاده کنید.

<?php
   session_start();
   if( isset( $_SESSION['number'] ) ) {
      $_SESSION['number'] += 1;
   }else {
      $_SESSION['number'] = 1;
   }
   $msg = "This page was visited ".  $_SESSION['number'];
   $msg .= "in this session.";
   echo $msg;
?>

برای از بین بردن یک session، باید تابع session_destroy() را فراخوانی کنید. برای از بین بردن یک متغیر session، تابع unset() را فراخوانی کنید.

<?php
   unset($_SESSION['number']);
   session_destroy();
?>

نحوه ی استفاده از sessionها در فریمورک yii

Sessionها این امکان را به داده ها می دهند که بتوانند در سراسر درخواست های کاربران قابل دسترسی باشند. در PHP شما می توانید از طریق متغیر $_SESSION به آنها دسترسی پیدا کنید. در Yii، از طریق کامپوننت برنامه Session می توانید به session ها دسترسی پیدا کنید.

 

مرحله 1 - متد actionOpenAndCloseSession را به SiteController اضافه کنید.

public function actionOpenAndCloseSession() {
   $session = Yii::$app->session;
   // open a session
   $session->open();
   // check if a session is already opened
   if ($session->isActive) echo "session is active";
   // close a session
   $session->close();
   // destroys all data registered to a session
   $session->destroy();
}

در کد بالا، ما کامپوننت برنامه session را دریافت کردیم، که یک session را باز می کند، بررسی می کند که آیا آن فعال است یا نه، session را می بندد، و در نهایت آن را از بین می برد.

 

مرحله 2 – در آدرسبار مرورگر وب تان http://localhost:8080/index.php?r=site/open-and-close-session را تایپ کنید، آنچه که مشاهده می کنید مطابق با تصویر زیر می باشد.

شما می توانید، برای دسترسی به متغیرهای session ، از متدهای  set()و get() استفاده کنید.

مرحله 3 - متد actionAccessSession را به SiteController اضافه کنید.

public function actionAccessSession() {

 
   $session = Yii::$app->session;
            
   // set a session variable
   $session->set('language', 'ru-RU');
            
   // get a session variable
   $language = $session->get('language');
   var_dump($language);
                          
   // remove a session variable
   $session->remove('language');
                          
   // check if a session variable exists
   if (!$session->has('language')) echo "language is not set";
                          
   $session['captcha'] = [
      'value' => 'aSBS23',
      'lifetime' => 7200,
   ];
   var_dump($session['captcha']);
}

مرحله 4 - به آدرس http://localhost:8080/index.php?r=site/access-session بروید، آنچه که مشاهده می کنید مطابق با تصویر زیر می باشد.

فصلِ: 14 , تعداد قسمت ها: 188 , سطح: صفر تا صد

این فصل در یک نگاه:

سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…
فصلِ: 8 , تعداد قسمت ها: 77 , سطح: صفر تا صد

این فصل در یک نگاه:

  پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید