الذاكرة المؤقتة في سيرفر php – الذاكرة المؤقتة في php هي مكان لحفظ المعلومات، ولأن لغة php تحتاج لسيرفر ال Apache فإن مكان التخزين المؤقت للبيانات هو المتصفح. وبعبارة أخرى أصبحت الذاكرة المؤقتة في سيرفر php المحلي الذي يوفره برنامج ال XAMPP. وفي مقال اليوم سنتعلم كيفية الاستفادة من هذه البيانات والتعامل معها لذا تابعوا معنا.
الذاكرة المؤقتة في سيرفر php
![الذاكرة المؤقتة في سيرفر php](https://arabitec.com/wp-content/uploads/2023/07/word-image-221423-1-300x169.jpeg)
مفهوم التخزين المؤقت في php
هو عبارة عن مكان موجود على السيرفر يتم فيه تخزين البيانات التي يتم تبادلها بين المستخدم والسيرفر عبر المتصفح. بهدف تسهيل عملية حفظ البيانات في حال استخدامها أكثر من مرة.
وتتميز الذاكرة المؤقتة في سيرفر php بسرعتها على خلاف قواعد البيانات التي تحتاج بعض الوقت بالنسبة لبعض العمليات البسيطة. وفي هذا الصدد نلاحظ أن سيرفر ال Apache هو المسؤول عن هذه البيانات بطريقة أو أخرى.
والسبب في ذلك يعود إلى كونه التجهيز البرمجي المسؤول عن معالجة البيانات التي يتم إرسالها من الجزء الخاص بالعميل (client) أي المستخدم. يمكن التعامل مع هذه البيانات المؤقتة عن طريق مفهوم ال SESSION الموجود في php من قبل عدة مستخدمين.
ويعود سبب تسمية البيانات السابقة والذواكر بالمؤقتة لأن تواجدها محكوم ببقاء المتصفح مفتوحاً. أي عند إغلاق المتصفح وإعادة فتحة من جديد ستتم خسارة المعلومات السابقة.
![مفهوم التخزين المؤقت في php](https://arabitec.com/wp-content/uploads/2023/07/word-image-221423-2-300x180.png)
توابع ال SESSION في php
قبل البدء في كتابة الأكواد البرمجية وتعلم كيفية الاستفادة من الذاكرة المؤقتة في سيرفر php. يجب معرفة أهم التوابع الشائعة المستخدمة للتعامل مع البيانات المؤقتة وهنا نذكر ثلاثة أنواع مهمة.
- session_start (): وهو التابع المسؤول عن بداية الجلسة، ويخول للمبرمج الوصول للمعلومات المؤقتة المخزنة ضمن أي متحول من نوع session. أو يمكنك إنشاء وتعديل قيمة أي متحول من نفس النوع السابق. بالإضافة لإنشاء متحولاتك الخاصة المؤقتة (من نوع session).
- session_unset (): عن طريق هذا التابع يمكننا حذف أيّة متحولات من نوع session، ويجب أن يسبق هذا التابع بتابع بدء الجلسة الموضع في الأعلى حتى يقوم بعمله بدون أخطاء منطقية.
- session_destroy (): هذا التابع مخصص لإزالة الجلسة، ويختلف عن التابع السابق في أنه يقوم بإزالة الجلسة بمعنى أنه لا يمكن إنشاء أي متحول من نوع session بعد تنفيذه. بخلاف التابع السابق session_unset () الذي يسمح بذلك.
![توابع ال SESSION في php](https://arabitec.com/wp-content/uploads/2023/07/word-image-221423-3-300x132.png)
إنشاء متحول من نوع session
والآن سنبدأ بالتعرف على طريقة إنشاء متحول مخزن في الذاكرة المؤقتة في سيرفر php، عن طريق كتابة session_start (); في البداية. ومن ثم النزول سطر وكتابة التعليمة التالية $_SESSION[“name”] =”Amir”; هنا في هذه التعليمة قمنا بتعريف متحول من نوع جلسة باسم name وأسندنا له القيمة Amir.
ولعرض هذا المتحول خارج القسم الخاص بلغة php ولكن ضمن وسم h1 الخاص بلغة html5، سنقوم بكتابة التعليمة التالية.
<h1><? php echo $_SESSION[“name”];?></h1>
منوهين إلى أن الاسم الخاص بالمتحول من نوع جلسة يتبع قواعد كتابة المتغيرات. وفي حال لم تكن تعرف ما هي المتغيرات في php، يمكنك قراءة مقالنا السابق عن المتغيرات وأنواع البيانات في php. وعند تنفيذ الملف السابق ستظهر النتيجة كما هو موضح بالصورة التالية.
![إنشاء متحول من نوع session - الذاكرة المؤقتة في سيرفر php](https://arabitec.com/wp-content/uploads/2023/07/word-image-221423-4-300x160.png)
حذف جميع المتحولات المؤقتة
لتمكين مفهوم الذاكرة المؤقتة في سيرفر php، لا بد من توضيح طريقة حذف المتغيرات من نوع جلسة (session) التي أنشأناها في المثال السابق. حيث يمكننا ذلك عن طريق التابع الثاني من التوابع الموضحة في الأعلى.
وهو التابع session_unset () ;، وسنقوم بوضعه بعد تعليمة التعريف عن متحول الجلسة وإسناد القيمة له. ولكن قبل تعليمة الطباعة وسنقوم بتنفيذ الملف لنرى كيف ستظهر النتيجة.
وجدير بالذكر أن التوابع السابقة ضرورية جدا ليتضح مفهوم الجلسة في php وفي حال لم تكن تعرف ما هو التابع. يمكنك قراءة مقالنا السابق عن التوابع في لغة php.
وستكون نتيجة التنفيذ السابقة هو خطأ سيظهر على شاشة المتصفح، لأنه لن يستطيع التعرف على المتحول name عند الطباعة. كما يظهر في الصورة الآتية.
![](https://arabitec.com/wp-content/uploads/2023/07/word-image-221423-5-300x161.png)
إزالة الجلسة في php
هنا سنقوم باستخدام التابع الثالث من التوابع السابقة وهو session_destroy () ;، وسنقوم بكتابته بعد حذف التابع session_unset () ;. مع العلم أننا سنقوم بإعادة تعريف للمتحول name لنرى إن كان التابع الخاص بحذف الجلسة سيقوم بحذف المتغيرات المتعلقة بها.
بالطبع سيقوم بحذف الجلسة كاملاً ولكنه لن يؤثر على المتحولات المحجوزة قبل إنهاء الجلسة. ولكنه لن يسمع بإنشاء أي متحول آخر من نوع جلسة بعد تنفيذه، وهذا ما هو موضح في الكود التالي.
![](https://arabitec.com/wp-content/uploads/2023/07/word-image-221423-6-300x160.png)
مجال الرؤية لمتغيرات ال session
فيما سبق تعرفنا على كيفية إنشاء وتعديل وحذف المتغيرات في الذاكرة المؤقتة في سيرفر php. ولكن في هذه الفقرة سنوضح لكم أن هذه المتغيرات مرئية بالنسبة لجميع صفحات الموقع الخاص بك على السيرفر.
حيث أننا سنقوم بإنشاء صفحة php أخرى، وإذا كنت لا تعرف ذلك يمكنك قراءة مقالنا حول كيفية إنشاء ملف php. وسنسميها App.php، وسنقوم بطباعة متغيرات الجلسة من الصفحة first.php إلى App.php.
وجدير بالذكر أن استخدام المتحولات المتعلقة بالجلسة دون كتابة التابع session_start () ; في الصفحة App.php لن يكون صحيحاً. كما هو واضح بالصور التالية ما يؤكد أن المتحولات من نوع session مرئية بالنسبة لصفحات موقعك كاملة شريطة أن تضع التابع المسؤول عن بدء الجلسة في البداية.
![مجال الرؤية لمتغيرات ال session](https://arabitec.com/wp-content/uploads/2023/07/word-image-221423-7-300x160.png)
حماية متحولات الجلسة في موقعك
قد تقوم عن طريق الخطأ بحذف جميع المتحولات من نوع جلسة داخل الذاكرة المؤقتة في سيرفر php، ولكنك لا تريد أن يظهر هذا الخطأ كما ظهر معنا في الأعلى. وتريد طباعة رسالة بدلاً من ذلك.
الهدف من عدم إظهار رسالة الخطأ هو حماية الجلسات عبر موقعك من الاختراق، عن طريق طباعة رسالة أخرى تحددها بنفسك بدلاً من الخطأ الذي يظهره محرر الأكواد الخاص بنا.
يمكن تحقيق ذلك بسهولة عن طريق وضع شرط if()، وإذا كنت لا تعرف كيفية كتابة شرط في php، يمكنك قراءة مقالنا السابق عن الجمل الشرطية في php. وبداخل هذا الشرط سنضع التعليمة !empty($_SESSION[“name”]) الذي يتحقق من تابع الجلسة إذا كان فارغا أم لا عن طريق التابع empty والإشارة ! تدل على النفي، أي يصبح الشرط (إذا كان التابع السابق غير فارغ).
وفي حال كان فارغاً ولا يوجد أي متحول جلسة، فإننا عن طريق الجزء else الخاص بالجملة الشرطية يمكن طباعة أي جملة تريدها. وسنوضح الكلام السابق في الملف first.php وحذف جميع التعليمات من الصفحة App.php.
![حماية متحولات الجلسة في موقعك](https://arabitec.com/wp-content/uploads/2023/07/word-image-221423-8-300x161.png)
كما وأنه في حال عدم معالجة الخطأ السابق سيقوم المتصفح بعرض الخطأ التالي بالشكل المبين في الصورة التالية.
![سيقوم المتصفح بعرض الخطأ - الذاكرة المؤقتة في سيرفر php](https://arabitec.com/wp-content/uploads/2023/07/word-image-221423-9-300x160.png)
وفي ختام مقالنا عن الذاكرة المؤقتة في سيرفر php نلاحظ أن هذه العملية لها دور احترافي في التعامل مع مختلف المتحولات ضمن المواقع الكبيرة. لكونها تقوم بتقليل الوقت اللازم في عملية الترجمة، فضلاً على أنها تعتبر طريقة احترافية في التعامل مع البيانات الخاصة بالمستخدمين بسبب الحماية. أتمنى أن يعجبكم المقال ولا تنسوا متابعة موقعنا عربي تك للمزيد من المواضيع المختلفة.
إقرأ أيضاً: الحلقات التكرارية في php