سشن متغیری سراسری است که به عنوان راهکاری برای نگهداری اطلاعات درون متغیرهای سراسری جهت استفاده در صفحات مختلف میباشد.
فرض کنید در یک صفحه شما متغیری حاوی عدد یا رشته ای دارید که میخواهید کاربر وقتی به صفحه یا صفحات دیگر رفت به آن دسترسی داشته باشه و حتی اونو تغییر بده ، در اینصورت بهترین راهکار استفاده از سشن میباشد .
نکته : سشن برخلاف کوکی درون کامپیوتر سرور نگهداری می شود و بر روی کامپیوتر کلاینت چیزی رو نگه نمی دارد. و فقط در زمان ایجاد شدن شناسه ای رو به کامپیوتر کلاینت اختصاص میده
تعریفی از سشن در طراحی وب : وقتی شما یک وبسایت رو باز می کنید و صفحات آنرا مرور می کنید و گاها تغییراتی نیز در آن انجام میدهید به معنی یک نشست در سایت تلقی می شود یعنی شما به عنوان یک کاربر نسشتی(جلسه) در سایت داشته اید .
بنابر تعریف بالا ، php نیز از سشن جهت تمییز کاربران از یکدیگر ، استفاده میکنه و شما میتونید با استفاده از تابع سشن ، نشست کاربران رو کنترل کنید .
مثلا کاربر وقتی در فرم لاگین وارد شد و عملیات احراز هویت و اعتبار سنجی انجام شد ، مقداری رو با مثلا مقدار 'لاگین شده' درون یک متغییر از نوع سشن میریزیم و زمانیکه همان کاربر در همان نشست وارد صفحات دیگر شد مقدار درون اون متغییر در اون صفحه چک میشه که در صورت وجود مقدار 'وارد شده ' اون کاربر به عنوان کاربر وارد شده به سایت به حساب می آید و دیگر لزومی نداره تا در تک تک صفحات عمل لاگین انجام بگیره .
البته این فقط یکی از کاربردهای این متغییر هست ، خودتون فکر کنید ببینید میتونید چه کاربردهای دیگه ازش داشته باشید
متغیر های سشن که برای هر کدام از کاربران هنگام وارد شدن به سایت ایجاد میشه (البته اگه برنامه نویس متغییر سشنی رو تعریف کرده باشه) و هنگام بسته شدن مرورگر کاربر از بین می رود که البته برای بستن یا از بین بردن متغییر های سشن هر کاربر می توان از متد دیستروی نیز استفاده کرد که معمولا در سایتها دکمه برای خروج قرار می دهند و کاربر وقتی روی این دکمه کلیک کرد متد نابود کننده سشن سشن کاربر رو از سرور حذف می کنه
یک سشن با متد زیر آغاز بکار میکند یعنی شما قبل از اینکه بخواهید متغییری از نوع سشن ایجاد کنید تا در تمام صفحات دیگر سایتتون دسترسی داشته باشید باید در هر صفحه ای که به آن نیاز دارید و همچنین صفحه ای که متغییر سشن رو مقداردهی میکنید این تابع رو فراخوانی کنید تا اجازه استفاده و دسترسی به متغیر های سشن به شما داده بشه :
session_start();
تذکر : طبق آنچه در بالا گفته شد متغیرهای سشن بطور خودکار به هر صفحه ای ارسال نمیشه مگر اینکه از متد بالا در صفحه مورد نظر نیز استفاده کنید تا به مقادیر آن دسترسی داشته و بتونید تغییری در مقدار آن انجام دهید ، همچنین دقت کنید که تابع استارت سشن بایستی در ابتدای صفحه قبل از هر تگ html و درون تگ php باشد.
پس از استارت سشن در هر صفحه می توانید از سینتکس زیر برای تعریف متغیر مورد نظر خود استفاده کنید:
$_SESSION["نام متغیر"] = "value";
به عنوان مثال ما در صفحه ای بنام page1.php بصورت زیر دو متغیر تعریف می کنیم سپس نام و نام خانوادگی کاربر رو درون متغیرها میریزیم:
<?php
session_start();
$_SESSION["uname"] = "mehdi";
$_SESSION["ufamilly"] = "hesami";
?>
حال برای اینکه در صفحه فرضی دوم بنام page2.php به مقادیر داخل متغیرهای از نوع سشن ایجاد شده در صفحه اول دسترسی داشته باشیم بایستی ابتدا سشن رو استارت بزنیم و سپس نام متغیر رو بخواهیم به این شکل :
<?php
session_start();
echo $_SESSION["uname"];
echo $_SESSION["ufamilly"];
?>
به همین راحتی
نظرات شما باعث میشه تا آموزش های بهتر و مورد نیاز کاربران رو در وبلاگ قرار دهیم و اگر ایرادی در اونها بود اصلاح کنیم