recent
أخبار ساخنة

حفظ البيانات ضمن ذاكرة التخزين المؤقتة في المتصفح في لغة PHP الدرس |18|

الصفحة الرئيسية


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

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

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

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

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

3- الوظيفة session_destroy : تعني تدمير الجلسة و يتم إستخدامها لإنهاء الجلسة التي تم بدئها.


الفرق بين session_unset و session_destroy

الفرق بإختصار هو عند إستخدام session_unset سوف تُخبِر المُتصفح بأن يحذف جميع المتغيرات من نوع session و بعد أن يتم تنفيذ هذا الأمر يُمكن إنشاء متغيرات أخرى من نوع session يعني لم تقم بعد بإنهاء الجلسة و عند إستخدام session_destroy سوف يقوم بتدمير الجلسة و إنهائها يعني إذا نريد بدء جلسة جديدة يجب إستدعاء أمر البدء session_start و بعدها نستخدم امر التدمير فقد تمت إنهاء الجلسة السابقة, فقط هذا هو الفرق بينهم.

 

الشكل العام له

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

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

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

 

مثال

<?php
session_start();
$_SESSION["email"] = "[email protected]";
?>

<h1><?php echo $_SESSION["email"] ?></h1>

 

شرح المثال السابق 1

لقد قمنا ببدء الجلسة في البداية عن طريق أمر البدء session_start ثم قمنا بإنشاء متغير من نوع session و إسمه email و قمنا بتخزين به بريد إلكتروني, و قمنا بعرض البيانات عن طريق وسم h1 لطبع ما هو موجود في المتغير عن طريق دالة echo للطبع و كتبنا بعدها إسم المتغير مع تعريفه, و عندما قمنا بفتح هذا الكود في المتصفح ستكون نتيجته هي

 

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

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

<?php
session_start();
$_SESSION["email"] = "[email protected]";

$_SESSION["email"] = "[email protected]";
?>

<h1><?php echo $_SESSION["email"] ?></h1>

 

شرح المثال السابق 2

لقد قمنا بكتابة نفس تعريف المتغير و إسمه ثم أسندنا له القيمة الجديدة التي نريدها له بشكل مباشر و عند تنفيذ هذا الكود سوف نحصل على النتيجة الآتية


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

<?php
session_start();
$_SESSION["email"] = "[email protected]";

$_SESSION["email"] = "[email protected]";
session_unset();
?>

<h1><?php echo $_SESSION["email"] ?></h1>

 

شرح المثال السابق 3

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


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

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

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


شرح المثال السابق 4

لقد قُمنا بإنهاء الجلسات و بعده قُمنا بإستخدام الشروط مع الوظيفة empty و وظيفتها الكشف عن المتغير يتواجد أم لا, وضعنا شرط if إذا كان المُتغير موجود قُم بطباعة الإيميل أي قيمة المُتغير و إن كان غير موجود قم بطباعة المتغير غير موجود و عند تشغيل الكود سنحصل على النتيجة


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

google-playkhamsatmostaqltradent