در یک جلسه هر چند تا متغیر که بخواهید می توانید برای جلسه تان ایجاد نمائید و این متغیر ها در تمام صفحات وب سایت که کاربر باز می کند قابل استفاده اند البته مادامیکه ان صفحه ای که جلسه را شروع کرده باز باشد session برای ذخیره کردن اطلاعات یا تغییر تنظیمات مربوط به جلسه یک کاربر بکار می رود ( منظور از جلسه مدیریت صفحات وب باز شده از یک سایت توسط برنامه صفحه وب می باشد ) این جلسه از دید کاربر مخفی است و کاملا در برنامه صفحات وب نهفته است

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

شروع یک جلسه

قبل از اینکه شما بتوانید اطلاعات کاربری که در حال بازدید از وب سایت شماست در جلسه ذخیره نمائید ابتدا باید جلسه را اغاز نمائید نکته : دستور session_start باید قبل از تگ HTML باشد

مثال

<?php session_start(); ?>

<html>
<body>

</body>
</html>
 کد بالا جلسه کاربر را در سرور ثبت می کند ، و به شما اجازه میدهد اطلاعات کاربر را در سرور ذخیره نمائید  و یک UID را به ان کاربر اختصاص دهید
روش ذخیره نمودن اطلاعات جلسه
 روش صحیح برای ذخیره نمودن اطلاعات جلسه استفاده از متغیر SESSION_$ است
 مثال
 <?php
session_start();
// store session data
$_SESSION['views']=1;
?>

<html>
<body>

<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>

</body>
</html>

خروجی :

Pageviews=1

در مثال زیر ، ما برای شمردن تعداد دفعات بازدید سایتمان توسط کاربری خاص ، یک شمارنده ساده می سازیم در این مثال به کمک تابع isset بررسی می کنیم که اگر قبلا متغیر views ساخته شده یک واحد به ان اضافه شود ولی اگر ساخته نشده ، هم اکنون ایجاد شود و مقدار یک درون ان قرار گیرد

<?php
session_start();

if(isset($_SESSION['views']))
$_SESSION['views']=$_SESSION['views']+1;
else
$_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>

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

مثال:

<?php
session_start();
if(isset($_SESSION['views']))
  unset($_SESSION['views']);
?>

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

<?php session_destroy(); ?>

w3web.persianblog.ir