انتقل إلى محتوى الدرس

Storing Session Flash Messages تخزين وعرض رسائل التنبيه المؤقتة بالجلسة

امنع تكرار إرسال النماذج عند تحديث الصفحة عبر نمط PRG ورسائل الجلسة المؤقتة Flash Messages في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

لأن التحويل يبدأ طلب GET جديداً ومستقلاً، تختفي متغيرات PHP المحلية الخاصة بطلب POST. لذا تُستخدم الرسائل المؤقتة (Flash Messages) لحفظ التنبيه في $_SESSION ثم مسحه فور قراءته لأول مرة.

  • احفظ الرسالة قبل التحويل: $_SESSION["flash"] = ["tone" => "success", "text" => "Saved!"];.
  • في طلب GET التالي، اقرأ الرسالة في متغير محلي ثم احذفها فوراً من الجلسة عبر unset($_SESSION["flash"]).
  • بفضل حذف المفتاح فور قراءته، لن تظهر الرسالة مرة أخرى إذا قام المستخدم بتحديث الصفحة لاحقاً.

يلتقط معامل الدمج الفارغ ?? الرسالة داخل المتغير المحلي $flash، بينما تمسحها unset() من الجلسة حتى لا تتكرر عند التحديث التالي.

مخطط تدفق التنفيذ العملي لقسم تخزين وعرض رسائل التنبيه المؤقتة بالجلسة في لغة PHP
PHP
<?php
session_start();
$_SESSION["flash"] = "Changes saved successfully!";

// On the redirected GET request, consume once and unset:
$flash = $_SESSION["flash"] ?? null;
unset($_SESSION["flash"]);

echo "1st Render : " . ($flash ?? "None") . "\n";
echo "2nd Refresh: " . ($_SESSION["flash"] ?? "None") . "\n";