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

مفهوم session :

هنگامی که شما با یک نرم افزار در محیط ویندوز کار می کنید ، آن را باز کرده و تغییراتی درونش ایجاد نموده و سپس آن را می بندید . به این فرایند یک session یا به بیان فارسی ، جلسه می گویند .
از ابتدای فرایند تا لحظه ای که آن را به اتمام می رسانید ، ویندوز شما را شناخته و می داند که چه کسی هستید .

اما در دنیای وب و اینترنت اوضاع فرق دارد . وب سرور سایتی که در حال بازدید از آن هستید ، نمی داند که شما کی هستید . زیرا آدرس HTTP مرورگر به سرور راجع شما اطلاعاتی نمی دهد . بنابراین تمایز کاربران با یکدیگر غیر ممکن شده و سرور با این وضع برای سرویس دهی به آنها دچار مشکل می شود . بنابراین باید چه کرد ؟ راه حل کجاست ؟
این مشکل در وب و در زبان PHP به وسیله session حل شده است .
سرور سایتی که وارد آن می شوید ، اطلاعات شما مثل username , pass را در متغیرهایی به نام session ذخیره می کند . هر بار که صفحه جدیدی از همان سایت را باز می کنید ، سرور اطلاعات session شما را به همراه درخواست صفحه به مرورگر ارسال کرده و بنابراین دیگر نیازی ندارید در هر صفحه اطلاعات کاربری خود را مجددا وارد نمایید .
این فرایند را تاکنون بارها تجربه کرده و باعث راحتی شما بوده است . اما session چگونه ایجاد و استفاده می شوند .

نحوه تعریف session بر روی سرور :

سرور سایت ، در لحظه ورود کاربر به سایت و وارد نمودن اطلاعات کاربری ، یک seesion با یک شناسه خاص ( unique ID - UID ) برای وی ساخته و اطلاعات وی را در آن session ذخیره می کند . این اطلاعات تا زمانی که کاربر در سایت است و یا اعتبار session از بین نرفته ، بر روی سرور ذخیره شده و در مرورگر به صورت کوکی تعریف شده اند .
session ها موقتی هستند و پس از اینکه کاربر سایت را ترک کرد و یا مثلا برای مدتی ، صفحه جدیدی باز نکرد ، از بین می روند . بنابراین در مراجعه بعدی ، در صورت فعال نبودن کوکی برای آن سایت ، باید اطلاعات را مجددا وارد نمایید .
معمولا عمر session را کوتاه تعریف می کنند تا امنیت اطلاعات کاربر بالا برود . تا حالا حتما به چنین موردی برخورد کرده اید . هنگامی که وارد یک سایت شده و اطلاعات خود را وارد نموده اید ، زمانی که صفحه سایت را در مرورگر به صورت باز رها کرده و پس از مدتی دوباره به سایت برگشته اید ، متوجه شده اید که اطلاعات شما از سرور پاک شده و باید مجددا وارد شوند . در این حالت می گوییم session ، منقضی یا expire شده است .

اکنون پس از تعریف مفهوم seesion ، قصد داریم تا شما را با نحوه تعریف و استفاده از session در PHP ، آشنا نماییم .


نحوه تعریف session در PHP :

برای ایجاد session در یک صفحه PHP ، ابتدا باید تابع ( ) session_startup را قبل از تگ < head > در صفحه ، تعریف نمایید . به صورتی که در جدول زیر نمایش داده ایم :

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

Syntax < ? php   session_start( )   ; ? >
< html >
  < head >
  < /head >
  < body >
  < /body >
< /html >

پس از آماده نمودن مقدمات ، نحوه دستوری مقداردهی و سپس خواندن یک session در PHP را در جدول زیر در قالب یک مثال نمایش داده ایم . این روش روش استاندارد مقدار دهی و خواندن یک session در PHP است .
در مثال زیر یک session به نام views ، ابتدا مقدار دهی شده و سپس در درون صفحه بازخوانی شده است :

مثال < ? php  
session_start( )   ;
  // را مقدار دهی می کند session کد زیر یک
  $_SESSION [ 'views' ] = 1 ;
 ? >
< html >
  < head >
  < /head >
  < body >
    < ?php
      // را می خواند session کد زیر مقدار
      echo " Pageviews = " . $_SESSION [ 'views' ] ;
    ? >

  < /body >
< /html >
خروجی مثال Pageviews = 1

مثال : در مثال دوم کدی طراحی شده است که به وسیله متغیر session به نام views ، تعداد دفعات مشاهده یک صفحه را نمایش می دهد . این دستود ابتدا مقدار این session را بررسی کرده و در صورتی که مقدار دهی نشده باشد ( یعنی کاربر اولین بار وارد صفحه شده است ) ، مقدار آن را برابر با 1 قرار می دهد . اما اگر از قبل مقدار دهی شده باشد ، یعنی کاربر قبلا به صفحه سر زده است . بنابراین یک واحد به مقدار آن اضافه می کند :

Example
< ? php
  session_start( )   ;
  if ( isset ( $_SESSION [ 'views '] ) )
      $_SESSION [ 'views' ] = $_SESSION [ 'views' ] + 1 ;
  else
      $_SESSION [ 'views' ] = 1 ;
      echo "Views = " . $_SESSION [ 'views' ] ;
? >
کد
مشاهده خروجی مثال خروجی


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه  :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :        
سوال امنیتی : جمع سه + پنج چنده ؟