recent
أخبار ساخنة

استخدام الجلسات Sessions لغة PHP الدرس |16|

الصفحة الرئيسية
الجلسات session

الجلسات session في لغة PHP

الجلسة session, درسنا اليوم هو مُفيد لمن يدرسون لغة php و هو عن session أو ما تسمى في اللغة العربية جلسة.

سنقوم بشرح كيفية إنشاء متغير من نوع session و يتم إستخدام هذا النوع من المتغيرات لحفظ البيانات ضمن ذاكرة التخزين المؤقتة في المُتصفح.

و هذا يعني عندما يتم إنشاء مُتغير من نوع session و بما أن البيانات يتم حفظها في ذاكرة التخزين المؤقتة في المُتصفح.

يُمكنك لآحقاً بإستخدام تلك البيانات في أي صفحة أخرى ترغب بها حتى و إذا كانت ليست الصفحة التي قُمت بإنشاء هذا المتغير ضمنها.

و بما أن البيانات يتم حفظها في ذاكرة التخزين المؤقتة في المتصفح فهذا يعني عندما يقوم المُستخدم بإغلاق المتصفح سوف يتم حذف تلك البيانات تلقائياً و هذه النقطه مُهمة.

قبل أن نقوم بشرح لكم كيف يتم إنشاء مُتغير من نوع session سوف نقوم بشرح بعض الوظائف التي سوف نستخدمها.

 

الوظائف التي تستخدم مع session في PHP

  1. session_start.
  2. session_unset.
  3. session_destroy.

سوف نقوم بشرح كل واحدة منها بشكل منفصل و أوضح.


الوظيفة session_start في PHP

بدء الجلسة يعني بعد أن يتم إنشاء متغير من نوع session أو التعديل على قيمة هذا المُتغير للوصول إلى البيانات المخزنة سابقاً ضمن إحدى المتغيرات من نوع session...الخ.

 

الوظيفة session_unset في PHP

عند تنفيذ هذه الوظيفة سوف يتم حذف المتغيرات من نوع session و يمكن تحديد بنفسك متى تُريد أن يتم تنفيذ الأمر الآتي, نقطه مهمة قبل تنفيذ هذا الأمر يجب عليك أن تكون بادئ الجلسة مُسبقاً لكي تتمكن من إستخدام هذا الأمر.

 

الوظيفة session_destroy في PHP

تعني تدمير الجلسة و يتم إستخدامها لإنهاء الجلسة التي تم بدئها.


الفرق بين session_unset و session_destroy

الفرق بإختصار هو عند إستخدام session_unset سوف تُخبِر المُتصفح بأن يحذف جميع المتغيرات من نوع session.

و بعد أن يتم تنفيذ هذا الأمر يُمكن إنشاء متغيرات أخرى من نوع session يعني لم تقم بعد بإنهاء الجلسة.

و عند إستخدام session_destroy سوف يقوم بتدمير الجلسة و إنهائها يعني إذا نريد بدء جلسة جديدة يجب إستدعاء أمر البدء session_start.

و بعدها نستخدم امر التدمير فقد تمت إنهاء الجلسة السابقة, فقط هذا هو الفرق بينهم.

الصيغة العامة له

<?php
session_start();
$_SESSION["name"] = "Ahmed kaissar";
?>

في البداية قُمنا ببدء الجلسة عن طريق session_start و قُمنا بعدها بإنشاء متغير من نوع session و يُكتَب بالشكل.

نضع في البداية إشارة $ و يليها إشارة _ و نكتب كلمة SESSION بالأحرف الكبيرة لا يجب وضعها أحرف صغيرة.

و ثم فتحنا قوسين مربعة و كتبنا ضمنها إسم المتغير ثم أسندنا له القيمة بعد إشارة اليساوي.

مثال 1

<?php
session_start();
$_SESSION["email"] = "javascript23685@gmail.com";
?>
<h1><?php echo $_SESSION["email"] ?></h1>

لقد قمنا ببدء الجلسة في البداية عن طريق أمر البدء session_start ثم قمنا بإنشاء متغير من نوع session و إسمه email و قمنا بتخزين به بريد إلكتروني.

و قمنا بعرض البيانات عن طريق وسم h1 لطبع ما هو موجود في المتغير عن طريق دالة echo للطبع.

و كتبنا بعدها إسم المتغير مع تعريفه.

و عندما قمنا بفتح هذا الكود في المتصفح ستكون نتيجته هي.

javascript23685@gmail.com


التعديل على القيمة التي يملكها المتغير session في PHP

يمكننا التعديل على القيم التي يملكها هذا المتغير عن طريق كتابة نفس المتغير السابق ووضع قيمة جديدة مباشرتاً.

<?php
session_start();
$_SESSION["email"] = "javascript23685@gmail.com";
$_SESSION["email"] = "programmertech@gmail.com";
?>
<h1><?php echo $_SESSION["email"] ?></h1>

لقد قمنا بكتابة نفس تعريف المتغير و إسمه ثم أسندنا له القيمة الجديدة التي نريدها له بشكل مباشر.

و عند تنفيذ هذا الكود سوف نحصل على النتيجة الآتية.

programmertech@gmail.com

 

حذف جميع المتغيرات من نوع session

<?php
session_start();
$_SESSION["email"] = "javascript23685@gmail.com";
$_SESSION["email"] = "programmertech@gmail.com";
session_unset();
?>
<h1><?php echo $_SESSION["email"] ?></h1>

لقد قُمنا بحذف جميع المتغيرات من نوع session بعد أمر التعديل على قيمة المتغير الأول.

و إستخدمنا لحذف هذه المتغيرات الأمر session_unset فهذا يعني تم حذف جميع المتغيرات.

و عند تنفيذ هذا الكود سيظهر خطأ.

session_unset

نلاحظ ظهر خطأ, و عند إستخدام session_destroy فقط سيقوم بإنهاء الجلسة فهذا يعني لن يتم حذف المتغيرات التي تتواجد ضمن ذاكرة التخزين المؤقتة.

توجد بعض النقاط من أجل الحماية و ببعض الأحيان لا نُريد عرض الخطأ نرغب في البداية بأن يتحقق php إذا كان يتواجد المتغير الذي نريد إستخدامه أو لا.

إن كان يتواجد نرغب بتنفيذ اوامر و إن كان لا يتواجد نرغب بعرض بيانات غير.

<?php
session_start();
$_SESSION["email"] = "javascript23685@gmail.com";
$_SESSION["email"] = "programmertech@gmail.com";
session_unset();
?>
<h2>
    <?php
    if(!empty($_SESSION["email"])){
        echo $_SESSION["email"];
    }else{
        echo "المتغير غير موجود";
    }
    ?>
</h2>
<h1><?php echo $_SESSION["email"] ?></h1>

لقد قُمنا بإنهاء الجلسات و بعده قُمنا بإستخدام الشروط مع الوظيفة empty و وظيفتها الكشف عن المتغير يتواجد أم لا.

وضعنا شرط if إذا كان المُتغير موجود قُم بطباعة الإيميل أي قيمة المُتغير و إن كان غير موجود قم بطباعة المتغير غير موجود.

و عند تشغيل الكود سنحصل على النتيجة.

session_unset in php

إلى هُنا لقد تعلَّمنا كيفية إنشاء مُتغير من نوع session و كيفية التعديل عليه و ايضاً كيفية إستخدامه في بدء الجلسة و إنهائها و حذف المتغيرات.
google-playkhamsatmostaqltradent