جلسة هو وسيلة لتخزين المعلومات (in variables) ليتم استخدامها عبر صفحات متعددة.
على عكس الكعكة، لا يتم تخزين المعلومات على الكمبيوتر المستخدمين.
ما هي الدورة PHP؟
عند العمل مع تطبيق، فتحه، والقيام ببعض التغييرات، ومن ثم تقوم بإغلاقه. هذا هو مثل الكثير من الدورة. يعرف الكمبيوتر من أنت. فهو يعرف عند بدء التطبيق وعند النهاية. ولكن على شبكة الانترنت هناك مشكلة واحدة: خادم الويب لا تعرف من أنت أو ما تفعله، لأن عنوان HTTP لا تحتفظ الدولة.
متغيرات جلسة حل هذه المشكلة عن طريق تخزين معلومات المستخدم لاستخدامها عبر صفحات متعددة (eg username, favorite color, etc) . افتراضيا، متغيرات جلسة تستمر حتى يغلق المستخدم المتصفح.
وبالتالي؛ متغيرات جلسة تعقد المعلومات حول مستخدم واحد واحد، ومتاحة لجميع الصفحات في تطبيق واحد.
نصيحة: إذا كنت في حاجة الى تخزين دائم، قد ترغب في تخزين البيانات في قاعدة البيانات .
بدء جلسة عمل PHP
بدء جلسة مع session_start() وظيفة.
يتم تعيين متغيرات جلسة مع المتغير العالمي PHP: $ _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>
تشغيل المثال » Note: إن session_start() وظيفة يجب أن يكون أول شيء في المستند. قبل أية علامات HTML.
الحصول على دورة PHP القيم المتغيرة
المقبل، ونحن إنشاء صفحة أخرى تسمى "demo_session2.php" . من هذه الصفحة، سنقوم الوصول إلى معلومات جلسة وضعناها على الصفحة الأولى ("demo_session1.php") .
لاحظ أن الجلسة لم يتم تمرير المتغيرات بشكل فردي لكل صفحة جديدة، بدلا من ذلك يتم استردادها أنها من الدورة نفتح في بداية كل صفحة ( session_start() ).
ولاحظ أيضا أن يتم تخزين كافة القيم متغير جلسة في المتغير $ _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>
تشغيل المثال » وهناك طريقة أخرى لإظهار كافة القيم متغير جلسة لجلسة المستخدم لتشغيل التعليمات البرمجية التالية:
مثال
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
تشغيل المثال » كيف يعمل؟ كيف تعرف انها لي؟
تعيين معظم جلسات المستخدم المفتاح على جهاز الكمبيوتر الخاص بالمستخدم ويبدو أن شيئا من هذا القبيل: 765487cf34ert8dede5a562e4f3a7e12. ثم، عند فتح جلسة على صفحة أخرى، تقوم بمسح جهاز الكمبيوتر عن المفتاح المستخدم. إذا كان هناك تطابق، فإنه يصل إلى تلك الدورة، إن لم يكن، ويبدأ دورة جديدة.
تعديل متغير جلسة 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
لإزالة كافة متغيرات جلسة العالمية وتدمير الدورة، واستخدام 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>
تشغيل المثال »