سشن ها در زبان php یک سری فایل ها هستند که بصورت موقتی سمت سرور ایجاد میشوند و برای هر کاربر که به وب سایت شما مراجعه میکند میتوانند منحصر به فرد باشند.
سشن ها داده هایی هستند که در تمامی بخش های ساخت یک وب سایت با php قابل دسترسی هستند . سشن ها در یک دایرکتوری موقتی ایجاد میشوند که این دایرکتوری در php.ini با نام session.save_path موجود است . قبل از استفاده از سشن ها از دایرکتوری موقتی مطمئن شوید که تنظیم شده باشد .
زمانی که یک سشن شروع میشود اتفاقات زیر رخ میدهد :
زمانی که زبان پی اچ پی میخواهد به یک سشن و اطلاعات آن دسترسی داشته باشد بصورت خودکار آیدی سشن از کوکی PHPSESSID فراخوانی میشود و سپس به فایل موقتی سشن ها نگاه میکند تا ببیند با این آیدی فایل سشن وجود دارد یا نه .
یک سشن ممکن است با بسته شدن مرورگر یا خروج از یک وب سایت نابود شود یا اینکه میتواند مدت زمان مشخصی داشته باشد یا اینکه خود کاربر آنرا نابود کند ( برای مثال زمانی که کاربر دکمه ی خروج سایت را میزند ) .
در زبان برنامه نویسی php به سادگی هر چه تمام تر میتوانید سشن ها را با استفاده از تابع session_start شروع کنید . این تابع چک میکند تا ببیند اگر قبلا سشن استارت نشده باشد برای یکبار سشن را استارت میکند .
پیشنهاد میشود که session_start را در بالا یا شروع کدهای اسکریپت php خود قرار دهید
داده های سشن درون متغیر $_SESSION[] ذخیره میشوند و به سادگی قابل بازیابی هستند البته تا زمانی که سشن عمر دارد و هنوز نابود نشده است .
در مثال زیر یک سشن را استارت میکنیم و یک سشن جدید به نام counter ایجاد میکنیم که مقدار بازدید صفحه را ذخیره میکند و با هر بار ریفرش کردن صفحه یک مقدار به counter اضافه میشود .
نکته : قبل از اینکه از سشن ها استفاده کنید با استفاده از تابع isset مطمئن شوید که از قبل ایجاد و مقدار دهی شده است .
کدهای زیر را در یک فایل به نام test.php ذخیره کنید و سپس اجرا کنید و با هر بار ریفرش کردن صفحه باید مقدار بازدید صفحه زیاد شود .
<?php
session_start();
if( isset( $_SESSION['counter'] ) ) {
$_SESSION['counter'] += 1;
}else {
$_SESSION['counter'] = 1;
}
$msg = "You have visited this page ". $_SESSION['counter'];
$msg .= "in this session.";
?>
<html>
<head>
<title>Setting up a PHP session</title>
</head>
<body>
<?php echo ( $msg ); ?>
</body>
</html>
نتیجه ی کدهای بالا برای اولین بار بازدید رشته ی زیر خواهد بود :
You have visited this page 1in this session.
در زبان php یک سشن بصورت کامل توسط تابع session_destroy نابود میشود . این تابع هیچ آرگومان ورودی ندارد و به سادگی صدا زده میشود و تمام سشن ها را از بین میبرد ولی اگر شما قصد دارید یک سشن خاص را نابود کنید نه همه ی سشن ها را ، تابع unset را صدا بزنید و نام سشن را برای آن ارسال کنید .
در مثال زیر میبینید که سشن مثال بالا با نام counter را به تنهایی از بین میبریم :
<?php
unset($_SESSION['counter']);
?>
و در مثال پائین تمامی سشن ها با تمامی مقادیر ذخیره شده را نابود میکنیم :
<?php
session_destroy();
?>
اگر قصد دارید بدون نیاز به صدا زدن تابع start_session سشن را در همه جای اسکریپت خود ، شروع کنید کافیست به فایل php.ini بروید و مقدار متغیر session.auto_start را به 1 تغییر دهید .
زمانی هم وجود دارد که کاربر در کامپیوتر خود به کوکی ها اجازه نمیدهد ، چون ایجاد و استفاده از کوکی ها در مرورگر به اجازه ی کاربر بستگی دارد و به راحتی از تنظیمات مرورگر خود میتواند آنها را خاموش کند ، برای چنین حالت هایی روش دیگری وجود دارد تا آیدی سشن به مرورگر ارسال شود.
جایگزین استفاده از کوکی ها ، استفاده از SID ثابت میباشد که هنگام استارت کردن سشن تعریف میشود، اگر کاربر کوکی مورد نیاز سشن را ارسال نکند بصورت session_name=session_id در نظر گرفته میشود. این متغیر را میتوانید از url ارسال کنید به صفحه ی دیگری !!!
در مثال زیر نحوه ی استفاده از SID نشان داده شده است
<?php
session_start();
if (isset($_SESSION['counter'])) {
$_SESSION['counter'] = 1;
}else {
$_SESSION['counter']++;
}
$msg = "You have visited this page ". $_SESSION['counter'];
$msg .= "in this session.";
echo ( $msg );
?>
<p>
To continue click following link <br />
<a href = "nextpage.php?<?php echo htmlspecialchars(SID); ?>">
</p>
نتیجه ی مثال بالا کدهای زیر خواهد بود :
You have visited this page 1in this session.
To continue click following link
تابع htmlspecialchars برای جلوگیری از حملات xss استفاده شده است .
نکته : شما در حال گذراندن آموزش زبان برنامه نویسی پی اچ پی هستید.بعد از اتمام یادگیری پی اچ پی یکی از مواردی که حتما نیاز است تا به آن توجه کنید بحث mvc در زبان php است.
اتمام درس
محصولات برگزیده مناسب شما
دوره ی آموزش ساخت فریمورک برای پی اچ پی با PHP MVC دوره ی آموزش کامل زبان پی اچ پی ( PHP ) دوره ی پروژه محور ساخت هتلداری با php mvc دوره پروژه محور ساخت فروشگاه بامیلو با لاراول