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

How Post Redirect Get PRG Works آلية عمل نمط التحويل PRG خطوة بخطوة

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

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

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

يقسم نمط Post/Redirect/Get (PRG) معالجة النموذج إلى طلبين منفصلين بحيث يستقر المتصفح دائماً على رابط GET آمن قابل للتحديث.

  • الخطوة 1 (POST): يرسل المتصفح البيانات عبر POST، فيتحقق PHP منها ويحفظها ويخزن رسالة تنبيه في $_SESSION ثم يرد برأس تحويل.
  • الخطوة 2 (Redirect): يستقبل المتصفح رأس Location ويقوم تلقائياً بإرسال طلب GET جديد للرابط المحدد.
  • الخطوة 3 (GET): يعرض PHP الصفحة عبر طلب GET، ويصبح الضغط على مجرد تحديث آمن لصفحة العرض فقط.

يحفظ فرع POST رسالة النجاح داخل $_SESSION ويحول المتصفح فوراً إلى طلب GET /profile.php.

PHP
<?php
session_start();
$method = $_SERVER["REQUEST_METHOD"] ?? "POST";

if ($method === "POST") {
    $_SESSION["flash_notice"] = "Profile updated successfully.";
    header("Location: /profile.php", true, 303);
    echo "Step 1 POST complete -> Redirecting (303) to GET /profile.php\n";
}