جلسات Session در Php

بازدید: 762 بازدید
جلسات در php

جلسات (سشن) Session روشی برای ذخیره کردن اطلاعات متغیرها است.

این اطلاعات قرار است بدون تغییر در صفحات زیادی از وب سایت استفاده شود.

محل ذخیره این اطلاعات، در سرور می باشد.

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

امروز و در ادامه سری مباحث حرفه ای php، درباره جلسات ، نحوه کدنویسی و استفاده از آنها صحبت خواهیم کرد.

همراه پرنیان باشید.

با سلام خدمت همراهان گرامی پرنیان طرح

جلسات (سشن) Session روشی برای ذخیره کردن اطلاعات متغیرها است.

این اطلاعات قرار است بدون تغییر در صفحات زیادی از وب سایت استفاده شود.

محل ذخیره این اطلاعات، در سرور می باشد.

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

امروز و در ادامه سری مباحث حرفه ای php، درباره جلسات ، نحوه کدنویسی و استفاده از آنها صحبت خواهیم کرد.

همراه پرنیان باشید.

جلسات در php چیستند و چه کاربردی دارند؟

زمانی که با یک برنامه (برای مثال word) کار می کنید، ایتدا با کلیک روی آیکن آن، آن را باز می کنید. تغییرات مورد نیاز خود را اعمال می کنید. و سپس آن را می بندید.

این مراحل، بسیار به کار سشن (session) شباهت دارد.

کامپیوتر می داند که شما در حال کار کردن با این برنامه هستید.

کامپیوتر می داند شما چه زمانی برنامه را باز کردید و چه زمانی کار با آن را به اتمام رسانده اید.

اما، هنگام کار با اینترنت و صفحات اینترنتی، این شناسایی کاربر، یک مشکل بزرگ است.

سرور نمی داند، شما چه کسی هستید. و چه کاری انجام می دهید.

زیرا، آدرس های http، وضعیت کاربر را نگهداری نمی کنند.

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

به طور پیشفرض، متغیرهای جلسه تا زمان بسته شدن مرورگر توسط کاربر، به فعالیت خود ادامه می دهند.

بنابراین ، متغیرهای جلسه، اطلاعات مربوط به یک کاربر را ذخیره می کنند. و این اطلاعات در تمامی صفحات یک برنامه در دسترس هستند.

 

session learning

نکته! اگر بخواهید اطلاعات را به صورت دائمی ذخیره کنید، نیاز دارید آنها را در دیتابیس ذخیره سازی کنید.

شروع یک جلسه php

یک جلسه session، با تابع ()session_start آغاز می شود.

متغیرهای جلسه، با متغیر سراسری SESSION_$ مقداردهی و تنظیم می شوند.

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

[PHP]

<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Set session variables
$_SESSION[“favcolor”] = “green”;
$_SESSION[“favanimal”] = “cat”;
echo “Session variables are set.”;
?>

</body>
</html>

[/PHP]

در این کد، ما متغیرهای یک جلسه را تنظیم کرده ایم. در حالت عادی، این کد خروجی دیدنی نخواهد داشت. اما در این کد طبق دستور echo ، خروجی Session variables are set. نمایش داده خواهد شد.

نکته! 

برای اینکه در کدهای خود از ست شدن، متغیرهای جلسه اطمینان حاصل کنید، یک بار صفحه ای که در آن متغیرها را ست کرده اید، اجرا کنید.

نکته!

تابع ()SESSIO_STRAT باید اولین دستور در صفحه کدهای شما باشد.

قبل از هر کد HTML

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

در قدم بعدی، یک صفحه جدید با نام demo_session2.php می سازیم.

در این صفحه، ما به اطلاعاتی که در صفحه ی قبل ست کرده ایم، دسترسی خواهیم داشت.(demo_session1.php)

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

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

همچنین توجه داشته باشید که، مقادیر تمام متغیرهای جلسه، در متغیر سراسری SESSION_$ نگهداری می شوند.

به مثال زیر دقت کیند:

[PHP]

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Echo session variables that were set on previous page
echo “Favorite color is ” . $_SESSION[“favcolor”] . “.<br>”;
echo “Favorite animal is ” . $_SESSION[“favanimal”] . “.”;
?>

</body>
</html>

[/PHP]

خروجی کد بالا عبارت زیر خواهد بود:

Favorite color is green.
Favorite animal is cat.

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

[PHP]

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
print_r($_SESSION);
?>

</body>
</html>

[/PHP]

خروجی این کد، آرایه ای است که مقادیر خانه های آن، اطلاعات موجود در جلسه کاربر حاضر است.

به شکل زیر:

Array ( [favcolor] => green [favanimal] => cat )

بررسی چگونگی کارکرد جلسه

بیشتر جلسه ها، یک کلید کاربری، روی کامپیوتر کاربر تنظیم می کنند.

که می تواند شبیه به کلید زیر باشد:

765487cf34ert8dede5a562e4f3a7e12

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

اگر مطابقتی پیدا شدف این جلسات با هم مَچ (match) می شوند. در غیر اینصورت ، یک جلسه جدید آغاز خواهد کرد.

تغییر اطلاعات موجود در متغیرهای جلسه

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

به مثال زیر دقت کنید:

[php]

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// to change a session variable, just overwrite it
$_SESSION[“favcolor”] = “yellow”;
print_r($_SESSION);
?>

</body>
</html>

[/php]

خروجی این کد عبارت زیر خواهد بود:

Array ( [favcolor] => yellow [favanimal] => cat )

از بین بردن یک جلسه 

برای حذف کردن یا از بین بردن مقادیر موجود در متغیرهای سراسری یک جلسه، و بستن یا destroy کردن یک جلسه، دو انتخاب داریم.

می توانیم از یکی از دو تابع ()session_unset یا ()session_destroy استفاده کنیم.

[php]

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// remove all session variables
session_unset();

// destroy the session
session_destroy();

echo “All session variables are now removed, and the session is destroyed.”
?>

</body>
</html>

[/php]

کد بالا نیز خروجی قابل مشاهده ای نخواهد داشت.

اما طبق دستور echo ، عبارت All session variables are now removed, and the session is destroyed. در خروجی چاپ خواهد شد.

دسته بندی برنامه نویسی php
اشتراک گذاری
مقالات مرتبط

دیدگاهتان را بنویسید

سبد خرید

هیچ محصولی در سبد خرید نیست.