کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش کار با Session در PHP

آموزش کار با Session در زبان PHP :

یک Session راهی برای نگهداری اطلاعات درون متغیر یا variable است که بتوان آن را در صفحات مختلف سایت استفاده کرد.
برخلاف کوکی یا Cookie، اطلاعات Session بر روی مرورگر کاربر و کامپیوتر وی ذخیره نشده و بر روی سرور سایت نگهداری می شوند.

مفهوم Session در PHP چیست؟

هنگامی که با یک نرم افزار یا application کار می کنید، آن را باز کرده، تغییراتی در آن اعمال نموده، در نهایت آن را می بندید. این عملکرد بسیار شبیه session است. در نرم افزار های تحت ویندوز، کامپیوتر می داند شما چه کسی هستید. کامپیوتر از شروع باز کردن برنامه تا پایان کارتان، درک کاملی از هویت شما دارد. اما بر روی اینترنت یک مشکل بزرگ وجود داشته و آن این است که سرور وب نمی داند شما چه کسی بوده و چه کاری دارید انجام می دهید، زیرا آدرس و پروتکل های HTTP بی ثبات و ناپایدار بوده و وضعیت شما را نگهداری نمی کنند.
متغیرهای Session با نگهداری اطلاعات کاربر در فضاهای مشخص مشکل فوق را حل کرده و این اطلاعات را در تمامی صفحات مورد استفاده کاربر در اختیار وب سرور قرار می دهند (اطلاعاتی مثل نام کاربری، رنگ مورد علاقه و ...).
بنابراین متغیرهای Session اطلاعات مربوط به یک کاربر خاص را نگهداری کرده و آن را در اختیار تمامی صفحات مورد استفاده وی قرار می دهند.

نکته :

اگر می خواهید اطلاعاتی را به صورت دایمی نگهداری کنید، بایستی آن ها را در پایگاه داده قرار دهید.

آموزش نحوه کار شروع یک Session در PHP :

عملکرد یک Session توسط تابع session_start() شروع می شود. متغیرهای session درون متغیر سراسری $_SESSION نگهداری می شوند. برای درک بهتر، بیایید یک مثال عملی را با ایجاد یک صفحه جدید PHP به نام “demo_session1.php” بررسی کنیم. در این صفحه ما یک session جدید را ایجاد کرده و مقدار تعدادی متغیر را برای آن تنظیم می کنیم، به صورت کد زیر :

<?php
  // Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
  <?php
    // Set session variables
    $_SESSION["favcolor"] = "green";
    $_SESSION["favanimal"] = "cat";
    echo "Session variables are set.";
  ?>
</body>
</html>
                
نکته مهم:

توجه داشته باشید که تابع session_start() بایستی در بالای صفحه و قبل از هر تگ HTML ای تعریف شود.

آموزش خواندن مقادیر متغیر Session در PHP :

در مرحله بعدی، یک صفحه PHP دیگر به نام “demo_session2.php” را ایجاد خواهیم کرد. در این صفحه جدید، به اطلاعات Session ای که در صفحه قبل (“demo_session1.php”) ایجاد کردیم، دسترسی خواهیم داشت.
توجه داشته باشید که متغیرهای Session به صورت جداگانه به صفحه جدید ارسال نمی شوند. بلکه آن ها به یک باره توسط تابع session_start() ای که در آغاز هر صفحه قرار داده ایم، خوانده می شوند.
همچنین توجه داشته باشید که تمامی متغیرهای session variables درون متغیر سراسری $_SESSION نگهدارای می شوند.
کد زیر، اطلاعات صفحه دوم طراحی شده (demo_session2.php) را نشان می دهد :

<?php
  session_start();
?<
<!DOCTYPE html<
<html<
<body<
  <?php
    // Echo session variables that were set on previous page
    echo "Favorite color is " . $_SESSION["favcolor"] . ".<br<";
    echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
  ?<
</body<
</html<

راه دیگر برای نشان دادن متغیرهای Session مربوط به یک کاربر، استفاده از کد زیر است :

<?php
  session_start();
?>
<!DOCTYPE html>
<html>
<body>
  <?php
    print_r($_SESSION);
  ?>
</body>
</html>
راهنمایی :

Session چطوری کار می کند و از کجا می داند من کی هستم؟
بسیاری از Sessionih ها یک کد مخصوص کاربر یا (user-key) را بر روی کامپیوتر وی تنظیم کرده که مشابه چیزی مثل +کد است. پس وقتی یک Session بر روی صفحه ای دیگر باز می شود، کامپیوتر را برای یافتن user-key اسکن می کند. اگر کلید مشابهی پیدا کند به آن دسترسی پیدا کرده و از روی آن می فهمد کاربر کیست و تنظیمات مورد نظر وی را ارایه می دهد . اما اگر کلید مشابهی پیدا کند، یک Session جدید را بر روی سیستم شروع می کند.

تغییر یک متغیر PHP Session Variable :

برای تغییر مقدار متغیر یک Session، کافی است آن را همانند کد زیر رو نویسی یا overwrite کنید :

<?php
  session_start();
?>
<!DOCTYPE html>
<html>
<body>
  <?php
   // to change a session variable, just overwrite it 
   $_SESSION["favcolor"] = "yellow";
   print_r($_SESSION);
?>
</body>
</html>
               

آموزش از بین بردن یک PHP Session :

برای از بین بردن و پاک کردن کلیه Session ها و متغیر های global session variables بر روی سیستم، همانند کد زیر از تابع های session_unset() و session_destroy() استفاده کنید :

<?php
  session_start();
?>
<!DOCTYPE html>
<html>
<body>
  <?php
    // remove all session variables
    session_unset(); 
    // destroy the session 
    session_destroy(); 
  ?>
</body>
</html>
               
1395/10/09 19579 2807
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...