با عرض سلام خدمت کاربران محترم سایت پی وی لرن. در جلسه قبل در مورد کوکی ها صحبت کردیم و گفتیم که کوکی ها برای ذخیره اطلاعاتی در کامپیوتر کاربر مورد استفاده قرار می گیرند.
در این جلسه قصد داریم تا session ها (جلسه) در PHP یا کار با session در php را به شما آموزش دهیم.
یک session راهی برای ذخیره اطلاعات در متغیر هاست تا در سراسر چندین صفحه قابل استفاده باشد.
برخلاف کوکی ها، session ها در کامپیوتر کاربر ذخیره نمی شوند.
وقتی با یک برنامه کار می کنید، شما آن را باز می کنید، کارهایی انجام می دهید و بعد آن را می بندید.
این بسیار شبیه یک session است. کامپیوتر می داند که شما چه کسی هستید. می داند که کی برنامه را باز کردید و جه موقع از آن خارج شدید.
اما در اینترنت یک مشکل وجود دارد: وب سرور نمی داند که شما کی یا چه هستید، زیرا آدرس HTTP حالت را حفظ نمی کند.
متغیر های session این مشکل را توسط ذخیره اطلاعات کاربر برای استفاده در سراسر چندین صفحه وب حل کرده است (مانند نام کاربری و … ).
به طور پیش فرض متغیر های session تا زمانی که کاربر مرورگر را نبندد، وجود دارند.
بنابراین متغیر های session اطلاعاتی در مورد یک کاربر نگه می دارند و در تمام صفحات در یک برنامه قابل دسترس خواهند بود.
یک session با تابع ()session_start آغاز می شود.
متغیر های session با استفاده از متغیر گلوبال SESSION_$ قابل تظیم هستند.
حال بیایید صفحه ای به نام “demo_session1.php” ایجاد کنیم.
در این صفحه ما یک session جدید ایجاد کرده و برخی متغیر های session را تنظبم می کنیم.:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php // Start the session session_start(); ?> <!DOCTYPE html> <html> <body> <?php // Set session variables $_SESSION["favcolor"] = "green"; $_SESSION["favanimal"] = "cat"; echo "متغیر های session تنظیم شده اند."; ?> </body> </html> |
در قذم بعد ما یک صفحه جدید به نام “demo_session2.php” ایجاد می کنیم.
از این صفحه به به اطلاعات session صفحه قبل دسترسی پیدا می کنیم.
توجه داشته باشید که مقدار متغیر های session در متغیر گلوبال SESSION_$ ذخیره شده اند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?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> |
راه دیگر برای نمایش تمامی مقدار متغیر های session برای یک کاربر یه صوذت زیر می باشد:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php print_r($_SESSION); ?> </body> </html> |
بیشتر session ها یک کلید کاربری (user-key) مانند: ۷۶۵۴۸۷cf34ert8dede5a562e4f3a7e12 بر روی کامپیوتر کاربر ذخیره می کند.
بعد هنگامی که یک session باز شود، کامپیوتر را برای یک کلید کاربری اسکن می کند. اگر با هم match شوند، صفحه به session دست پیدا می کند وگرنه یک session جدید را آغاز می کند.
برای تغییر یک متغیر session فقط کافیست تا آن را بازنویسی کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php // to change a session variable, just overwrite it $_SESSION["favcolor"] = "yellow"; print_r($_SESSION); ?> </body> </html |
برای از بین بردن تمای متغیر های گلوبال session از توابع ()session_unset و ()session_destroy استفاده نمایید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php // از بین بردن تمام متغیر ها session_unset(); // از بین بردن session session_destroy(); ?> </body> </html> |
جلسه کار با session در php نیز به پایان رسید. در جلسه بعد به مبحث فیلتر ها در php خواهیم پرداخت.
با پی وی لرن همراه باشید.
همچنین میتوانید نظرات و سوالان خود را از طری بخش نظرات با ما در میان بگذارید.
امیر
سلام بی زحمت یه توضیح هم در مورد اینگونه تعریف کردن بدین این گونه یعنی چی سیشن در سیشن است صدا زدن است ؟
$_SESSION[“$str_ip”][“$product_id”]
پی وی لرن
با سلام
به این ها سشن های چندتایی یا multi session گفته می شود. برای مواقعی که می خواهیم سشن خودمان را بر اساس آی دی و یا طبق کدهای خاص مقدار دهی کنیم از آن استفاده می کنیم.