میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

session در PHP

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

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

وقتی با یک برنامه کار می کنید ، آن را باز می کنید ، تغییراتی انجام می دهید و سپس آن را می بندید. این شباهت زیادی به یک session دارد. کامپیوتر می داند شما کی هستید. این می داند چه موقع برنامه را شروع می کنید و چه زمانی پایان می دهید. اما در اینترنت یک مشکل وجود دارد: سرور وب نمی داند شما کی هستید یا چه کاری انجام می دهید ، زیرا آدرس HTTP وضعیت را حفظ نمی کند.

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

بنابراین؛ متغیرهای session اطلاعات مربوط به یک کاربر را در خود نگه می دارند و برای همه صفحات یک برنامه در دسترس هستند.


شروع یک Session در PHP

session با تابع session_start()شروع می شود.

متغیرهای session با متغیر سوپر گلوبال PHP تنظیم می شوند: $ _SESSION.

حال ، بیایید یک صفحه جدید به نام “demo_session1.php” ایجاد کنیم. در این صفحه ، یک session جدید PHP را شروع می کنیم و برخی از متغیرهای session را تنظیم می کنیم:

مثال

<?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>

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


گرفتن مقدار متغیر های session در PHP

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

توجه داشته باشید که متغیرهای session به صورت جداگانه به هر صفحه جدید منتقل نمی شوند ، در عوض از session که در ابتدای هر صفحه باز می کنیم بازیابی می شوند ( session_start()).

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

مثال

<?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 برای یک جلسه کاربر ، اجرای کد زیر است:

مثال

<?php
session_start();
?>

<!DOCTYPE html>
<html>
<body>

<?php
print_r($_SESSION);
?>

</body>
</html>

چگونه کار می کند؟ از کجا می داند من هستم؟

بیشتر session ها یک کلید کاربری (user-key) مانند: ۷۶۵۴۸۷cf34ert8dede5a562e4f3a7e12 بر روی کامپیوتر کاربر ذخیره می کند.
بعد هنگامی که یک session باز شود، کامپیوتر را برای یک کلید کاربری اسکن می کند. اگر با هم match شوند، صفحه به session دست پیدا می کند وگرنه یک session جدید را آغاز می کند


تغییر یک متغیر session در php

برای تغییر یک متغیر session ، فقط آن را بازنویسی کنید:

مثال

<?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 و از بین بردن session ، استفاده session_unset() و session_destroy():

مثال

<?php
session_start();
?>

<!DOCTYPE html>
<html>
<body>

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

// destroy the session
session_destroy();
?>

</body>
</html>


 

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟