کلا جلسه یعنی به اشتراک گذاری متغیرها بین چند صفحه وب
به این متغیرهای اشتراکی هم اصطلاحا متغیرهای جلسه گویند
برای اینکه مفهوم جلسه یا session را به خوبی درک کنید بهتر است این مثال را با من پیش ببرید
 
سه بار برنامه notepad را اجرا کنید تا سه فایل جداگانه باز شود
به ترتیب اسم گذاری کنید
چون جلسه یک دستور php است پس حتما پسوند فایلها را php می گذاریم
و حتما انها ر ا در مسیر خاص که قبلا گفته شده ذخیره کنید

 

 

01.php

02.php

03.php

 

قرار است این سه صفحه وب از متغیرهایی بصورت مشترک استفاده کنند
برای این کار باید جلسه ایجاد کنیم و هر سه باید در این جلسه حاضر شوند
دستور زیر را قبل از شروع تگ html در تمام این سه فایل بنویسید

 

<?php session_start(); ?> 

 

 

پس تا این لحظه محتویات هر سه فایل به یک صورت خواهد بود یعنی به صورت زیر :

 

  <?php session_start(); ?>

<html>
<body>

</body>
</html>



 

 

 

حالا فرض کنید می خواهیم در فایل اول ، متغیری به نام s1 ایجاد کنیم و در ان مقدار 100 را قرار دهیم

 برای این کار باید از فرمول زیر استفاده کنیم :

 

$_SESSION['      ']= value ;

 

 

بین جفت تک کوتیشن درون کروشه ، نام متغیر را می نویسیم

و به جای value مقدار ان متغیر را قرار می دهیم

 

در این مثال می شود دستور زیر :

 

 

 <?php
session_start();

$_SESSION['s1']=100;


?>

<html>
<body>



</body>
</html> 

 

 حالا همین کار را در فایل دوم می کنیم

یعنی در فایل دوم متغیری به نام s2 با مقدار 20 ایجاد  می کنیم

 

 

 

 <?php
session_start();

$_SESSION['s2']=20;


?>

<html>
<body>



</body>
</html>

 

 
 سپس در فایل سوم می گوئیم حاصل ضرب s1 در s2 را نمایش دهد

 

 

 <?php
session_start();

echo  $_SESSION['s1']*$_SESSION['s2']


?>

<html>
<body>



</body>
</html>

 

 نکته :

حتما فایل اول را اول اجرا کنید تا متغیر جلسه که اسم ان s1 بود ایجاد شود

سپس فایل دوم را اجرا کنید تا متغیر جلسه که اسم ان s2 بود ایجاد شود

در نهایت فایل سوم را اجرا کنید که حاصل ضرب ان دو متغیر را نمایش دهد

 

 نکته :

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

 
چگونه بفهمیم متغیر جلسه قبلا ایجاد شده یا نه
 دستور isset این کار را می کند
 فرمول :

 

if (   isset ($_SESSION['       ']) )

{

 

دستورات

}

 درون کروشه و بین تک کوتیشن ها نام متغیر جلسه مورد نظر را بنویسید

 

مثلا در فایل دوم می خواهیم دستوری بنویسیم که اگر متغیر جلسه به نام s1 ایجاد شده یکی به ان اضافه کند

 

<?php

 

session_start();

if ( isset ($_SESSION['s1']))

         {$_SESSION['s1']++;}



?>

 
پاک کردن مقدار متغیرهای جلسه
  اگر می خواهید مقدار درون  متغیرهای جلسه را پاک نمائید  از تابع unset استفاده کنید

 

 <?php


session_start();


if(isset($_SESSION['s1']))


  unset($_SESSION['s1']);



?>

  دستورات بالا بررسی می کند در صورت وجود متغیر جلسه با نام s1 مقدار ان پاک شود
 
خاتمه دادن به جلسه و نیست و نابود کردن متغیرهای جلسه
  اما اگر می خواهید  جلسه و خود متغیرهای  جلسه را کلا نیست و نابود کنید از دستور session_destroy استفاده نمائید . با این کار قبل از اینکه با بستن صفحات وب توسط کاربر جلسه پایان یابد ،  شما دستور پایان جلسه را صادر کرده اید

 

<?php
session_destroy();
?>

 مثلا در فایل سوم بعد از اینکه حاصل ضرب دو متغیر s1 , s2 را دیدیم  هم جلسه و هم متغیرهای درون ان نابود شوند
 
 یعنی در فایل سوم دستورات زیر را می نویسیم :

 

<?php
session_start();

echo  $_SESSION['s1'] * ر$_SESSION['s2'];

 session_destroy();
?>

<html>
<body>



</body>
</html>

 
 حالا ابتدا فایل اول سپس فایل دوم و در نهایت فایل سوم را اجرا کنید
 حاصل ضرب را خواهید دید
 دوباره صفحه سوم را رفرش کنید

 صفر خواهید دید

چون نه دیگر جلسه ای وجود دارد و نه متغیری