Sessions

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
PHP پیشرفته
۱تاریخ و زمان
۲دستور Include
۳مدیریت فایل
۴باز کردن/خواندن فایل
۵ساختن/نوشتن فایل
۶آپلود فایل
۷کوکی‌ها
۸Sessions
۹فیلترها
۱۰فیلترهای پیشرفته
۱۱JSON در PHP
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
AJAX در PHP
مثال‌های PHP
مرجع PHP

یک جلسه (به انگلیسی: session) یک راه برای ذخیره‌سازی اطلاعات (درون متغیرها) برای استفاده درون چندین صفحه مختلف است.[۱]

برخلاف یک کوکی، اطلاعات روی کامپیوترهای کاربران ذخیره نمی‌شود.

یک جلسه (به انگلیسی: session) در PHP چیست؟

زمانی که شما با یک اپلیکیشن کار می‌کنید، شما آن را باز می‌کند، یک سری تغییرات صورت می‌دهید، و سپس آن را می‌بندید. این امر شبیه به یک جلسه است. کامپیوتر می‌داند شما چه کسی هستد. کامپیوتر می‌داند که شما چه زمانی اپلیکیشن را اجرا کردید و چه زمانی به آن خاتمه دادید. اما در اینترنت یک مشکل وجود دارد: وب سرورها نمی‌دانند شما چه کسی هستید و چه کاری انجام می‌دهید، زیرا که آدرس HTTP وضعیت را مشخص نمی‌کند.

جلسه‌ها این مشکل را با ذخیره اطلاعات کاربر برای استفاده درون صفحات مختلف حل کرده‌است. (برای مثال نام کاربری، رنگ مورد علاقه، و…). به صورت پیشفرض، متغیرهای جلسه تا زمانی که کاربر مرورگر را ببندد وجود دارند.

بنابراین؛ متغیرهای جلسات اطلاعاتی را در مورد یک کاربر نگه داری می‌کند، و این اطلاعات برای تمام صفحات در یک اپلیکیشن در دسترس است.

نکته: اگر شما به یک منبع ذخیره دائمی احتیاج دارید، شما می‌بایست اطلاعات را درون یک پایگاه داده ذخیره کنید.

ایجاد یک جلسه در PHP

یک جلسه به وسیله تابع session_start() ایجاد می‌شود.

متغیرهای جلسه‌ها با متغیر سراسری $_SESSION در PHP تنظیم می‌شوند.

حال، اجازه دهید که یک صفحه جدید به نام "demo_session1.php" ایجاد کنیم. در این صفحه، ما یک جلسه تعریف می‌کنیم و یک سری متغیر جلسه را مقداردهی می‌کنیم:

مثال

 1 <?php
 2 // Start the session
 3 session_start();
 4 ?>
 5 <!DOCTYPE html>
 6 <html>
 7 <body>
 8 
 9 <?php
10 // Set session variables
11 $_SESSION["favcolor"] = "green";
12 $_SESSION["favanimal"] = "cat";
13 echo "Session variables are set.";
14 ?>
15 
16 </body>
17 </html>


مشاهدهٔ نتیجه


نکته: تابع session_start() می‌بایست اولین خط کد درون سند شما باشد. قبل از هرگونه تگ HTML.

دریافت مقادیر متغیرهای جلسه در PHP

در مرحله بعدی، ما یک صفحه دیگر به نام "demo_session2.php" ایجاد می‌کنیم. برای این صفحه، ما به اطلاعات جلسه که درون صفحه اول ("demo_session1.php") تنظیم کرده‌ایم، دسترسی پیدا می‌کنیم.

توجه داشته باشید که متغیرهای جلسه به طور جداگانه به هر صفحه پاس داده نمی‌شوند، به جای این امر آننها از جلسه که ما در ابتدای هر صفحه ایجاد می‌کنیم (session_start()) بازیابی می‌شوند.

همچنین تواجه داشته باشید که تمامی مقادیر متغیر جلسه درون متغیر سراسری $_SESSION ذخیره می‌شود:

مثال

 1 <?php
 2 session_start();
 3 ?>
 4 <!DOCTYPE html>
 5 <html>
 6 <body>
 7 
 8 <?php
 9 // Echo session variables that were set on previous page
10 echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
11 echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
12 ?>
13 
14 </body>
15 </html>


مشاهدهٔ نتیجه


راه دیگری برای نمایش تمام مقادیر متغیر جلسه برای جلسه یک کاربر اجرای کد زیر است:

مثال

 1 <?php
 2 session_start();
 3 ?>
 4 <!DOCTYPE html>
 5 <html>
 6 <body>
 7 
 8 <?php
 9 print_r($_SESSION);
10 ?>
11 
12 </body>
13 </html>


مشاهدهٔ نتیجه


Session چطور کار می کند؟ چطور Session مرا شناسایی می کند؟

بیشتر Sessions یک مقدار کلید روی رایانه کاربر قرار می‌دهند که به صورت زیر شبیه است:

765487cf34ert8dede5a562e4f3a7e12. سپس، زمانی که یک جلسه روی صفحه دیگری باز می‌شود، رایانه کاربر برای پیدا کردن مقدار کلید بررسی می‌شود. در صورتی که مقدار کلید متناظری یافت شود، به جلسه دسترسی پیدا می‌کند، در غیر اینصورت، یک جلسه جدید ایجاد می‌کند.

ویرایش یک متغیر جلسه در PHP

برای تغییر یک متغیر جلسه، تنها آن را بازنویسی کنید:

مثال

 1 <?php
 2 session_start();
 3 ?>
 4 <!DOCTYPE html>
 5 <html>
 6 <body>
 7 
 8 <?php
 9 // to change a session variable, just overwrite it
10 $_SESSION["favcolor"] = "yellow";
11 print_r($_SESSION);
12 ?>
13 
14 </body>
15 </html>


مشاهدهٔ نتیجه


حذف یک جلسه در PHP

برای حذف تمامی متغیرهای جلسه‌های سراسری و حذف جلسه، از تابع session_unset() و session_destroy() استفاده کنید:

مثال

 1 <?php
 2 session_start();
 3 ?>
 4 <!DOCTYPE html>
 5 <html>
 6 <body>
 7 
 8 <?php
 9 // remove all session variables
10 session_unset();
11 
12 // destroy the session
13 session_destroy();
14 ?>
15 
16 </body>
17 </html>


مشاهدهٔ نتیجه


تمرینات PHP

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.



منابع آموزشی