متغیرها در طول برنامه مقداردهی می شوند و در پایان اسکریپت و در صفحه ای دیگر مقدار آن ها قابل دسترسی نیست و php دیگر آنها را نمی شناسد. اما گاهی اوقات نیاز است تا یک مقداری را تا زمان بستن سایت توسط کاربر ذخیره شود. مثلا اگر کاربری به پنل خود وارد شده باشد و بخواهد به صفحه ی دیگری در همان سایت برود نیاز است که ورود آن کاربر چک شود پس نیاز است که ورود یا نام کاربری کاربر به شکلی باشند که با رفتن به صفحه ای دیگر(در همان سایت) مقادیر از بین نرود.

در این حال ما می توانیم از جلسه ها یا session ها بهره بگیریم. هر مقداری که قرار است در جلسه ها ذخیره شود نیاز به یک نام و یک مقدار دارد اما قبل از آن باید به php گفته شود که جلسه را شروع کن.

شروع جلسه

گفته شد که برای این که بتوانیم مقادیر را در جلسات ذخیره کنیم نیاز است تا ابتدا آن را شروع کنیم. برای این کار از تابع session_start() استفاده می کنیم.

این تابع باید قبل از هر دستور دیگری و حتی قبل از تگ های html قرار بگیرد:

 

حالا زمان مقداردهی جلسات است.

مقداردهی جلسات session

همانطور که گفته شد هر مقدار از session ها دارای یک شناسه یا id و یک مقدار می باشد. شکل کلی مقداردهی جلسات به شکل زیر است:

$_SESSION[session_id] = value;

که به جای session_id نام جلسه و به جای value مقدار آن قرار می گیرد.

می توان تعداد بازدیدهای یک سایت را به وسیله sessionها بررسی کرد اما این کار اشکالات زیادی دارد و فقط برای مثال است. به مثال زیر دقت کنید:

 

خروجی:

مثالی از استفاده از session ها در php

خروجی

پس از چندبار refresh کردن صفحه مقدار بازدیدها تغییر می کند.

در این مثال ابتدا جلسه را با استفاده از تابع session_start() شروع کردیم. سپس به مقدار جلسه views که تعداد بازدید را مشخص می کند در هربار یکی به آن اضافه می کنیم و اگر تابه حال این مقدار تنظیم نشده (یعنی برای اولین بار صفحه مورد مشاهده قرار می گیرد)، مقدار این جلسه برابر با 1 قرار می گیرد.

نابود کردن مقادیر جلسه

گاهی اوقات نیاز است که مقادیر جلسه را حذف کنیم یعنی مقادیری که دیگر کاربردی ندارند را از بین ببریم. برای این کار می توانیم از تابع unset() استفاده کنیم. این تابع تنها مخصوص جلسه ها نیست و برای متغیرها هم به کار می رود. به مثال زیر دقت فرمایید:

 

خروجی:

مثالی از از بین بردن مقادیر جلسات

خروجی

همانطور که می بینید پس از این که مقدار username از session حذف شد برنامه دیگر آن را نمی شناسد و در صورت استفاده ممکن است با خطایی مانند شکل روبرو شوید.

نابود کردن جلسه

همچنین می توان جلسه را به طور کامل نابود کرد که در این زمان از تابع session_destroy() استفاده می کنیم: