keyboard_return  چسبون مقالات آموزشی آموزش Session در PHP
  1. آموزش Session در PHP

نشست Session در PHP

یک راه به منظور دسترسی به داده ها در تمام صفحات یک سایت استفاده از نشست ها (session) می باشد. هر نشست، یک فایل در مسیر موقتی در سرور ایجاد می کند و متغیر ها و مقادیر مورد نظر نشست های ثبت شده را در آن ذخیره می کند. این داده ها در تمام صفحات سایت تا زمانیکه کاربر در حال مشاهده صفحه می باشد در دسترس می باشد.

نشست در PHP

مسیر این فایل موقتی را می توانید از طریق تنظیمات موجود در فایل php.ini که session.save_path نامیده می شود، تعیین کنید. قبل از کار با متغیر های session مطمئن شوید که این مسیر را تنظیم و راه اندازی کرده اید.

وقتی یک session شروع می شود اتفاقات زیر رخ می دهد:

  • ابتدا PHP یک شناسه منحصر به فرد (identifier) برای آن نشست (session) بصورت یک رشته تصادفی از اعداد هگزادسیمال مانند ۳c7foj34c3jj973hjkop2fc937e3443 ایجاد میکند.
  • یک کوکی با نام PHPSESSID بصورت اتوماتیک به سیستم کاربر ارسال می شود تا شناسه منحصر به فرد (identifier) ایجاد شده را در خود نگهدارد.
  • یک فایل بصورت اتوماتیک در پوشه موقت سرور با نام رشته منحصر به فرد ایجاد شده در مرحله قبل و با پیشوند _sess مانند sess_3c7foj34c3jj973hjkop2fc937e3443 ایجاد می شود.

زمانی که اسکریپت PHP بخواهد مقداری را از متغیر نشست (session) بخواند، بصورت اتوماتیک رشته منحصر به فرد نشست را از فایل کوکی PHPSESSID دریافت کرده و در پوشه موقت موجود روی سرور به دنبال فایلی با این نام می گردد. با مقایسه مقادیر این فایل می توان اعتبار رشته را بررسی کرد.

زمانی که کاربر صفحه را ترک کند و یا مرورگر خود را ببندد، نشست (session) به پایان می رسد. سرور نیز پس از گذشت یک زمان مشخص که معمولاً ۳۰ دقیقه می باشد نشست را خاتمه میدهد.

آغاز یک نشست (session):

نشست PHP با فراخوانی تابع ()session_start آغاز خواهد شد. این تابع ابتدا بررسی می کند آیا نشست آغاز شده یا خیر. اگر session شروع نشده باشد، یک نشست جدید ایجاد می کند. بهتر است تابع ()session_start را در ابتدای صفحه قرار دهید.

<?php session_start(); ?>
<html>
<head>
	<title>chasboon.ir - Setting Up A PHP Session</title>
</head>

متغیر های یک نشست در آرایه ای با نام []SESSION_$ ذخیره می شوند. این آرایه در طول زمان اجرای یک نشست (session) قابل دسترسی هستند.

در ادامه با ارائه یک مثال نحوه کار و مدیریت یک نشست را شرح خواهیم داد:

<?php
   session_start();

   if( isset( $_SESSION['counter'] ) ) {
      $_SESSION['counter'] += 1;
   }else {
      $_SESSION['counter'] = 1;
   }
	
   $msg = "You have visited this page ".  $_SESSION['counter'] 
         . " time in this session.";
?>

<html>
   <head>
      <title>Setting up a PHP session</title>
   </head>
   <body>
      <?php  echo $msg; ?>
   </body>
</html>

یک متغیر با نام counter برای شمارش تعداد دفعات بازدید از صفحات یک سایت در طول عمر یک نشست تعریف کردیم. همچنین با استفاده از تابع ()isset نیز می توانیم تشخیص دهیم که متغیر counter مقداری دارد یا خیر. در صورتیکه برای اولین بار کد فوق را اجرا کنید مقدار counter برابر با ۱ خواهد شد و در هر نوبت که شما صفحه را بارگذاری کنید یک واحد به متغیر counter افزوده خواهد شد.

نتیجه اجرای کد فوق بصورت زیر خواهد بود:

.You have visited this page 1 time in this session

از بین بردن یک نشست (session)

با استفاده از تابع ()session_destory می توانید نشست ایجاد شده را از بین ببرید. این تابع نیاز به پارامتر ندارد و فرخوانی آن می تواند همه متغیر های یک نشست را از بین ببرد.

<?php   session_destroy();?>

در صورتیکه می خواهید تنها یک متغیر داخل نشست را از بین ببرید می توانید از تابع ()unset استفاده کنید.

<?php

   unset($_SESSION['counter']);

?>

امیدوارم این آموزش را پسندیده باشید. چسبون- مرجع برنامه نویسی و طراحی وب

آموزش Session در PHP - 4.2 از 5 بر اساس 150 رای

امتیاز کاربران

آموزش Session در PHP
دیدگاه‌ها
مهندس مهندس 7 سال پیش
بسیار عالی و واضح بود . سپاس فراوان

2024 © Copyright کليه حقوق مادی و معنوی براي چسبون محفوظ است و هرگونه کپی برداری پیگرد قانونی دارد.