شرح صفوف ومحتوى الفقرة
يوجه إرسال رأس Location: المتصفح للانتقال إلى رابط آخر، ولكنه لا يوقف محرك PHP تلقائياً عن إكمال تنفيذ بقية أسطر السكريبت.
- استدعِ دائماً
exit;في السطر التالي مباشرة بعدheader("Location: ...")! - يُعد نسيان
exit;بعد تحويل غير المسجلين ثغرة أمنية خطيرة؛ لأن PHP سيواصل تنفيذ كود الصفحة المحمية ويرسل محتواها بالكامل في جسم الاستجابة. - افتراضياً، ترسل
header("Location: /target")رمز الحالة المؤقت302 Foundما لم تحدد رمز3xxآخر.
لأن exit; تنهي تنفيذ السكريبت فوراً بعد إرسال رأس التحويل، فلن يصل التنفيذ أبداً إلى محتوى لوحة التحكم السرية بالأسفل.
PHP
<?php
$isAuthenticated = false;
if (!$isAuthenticated) {
header("Location: /login.php", true, 302);
echo "Redirecting to /login.php (302)...\n";
exit;
}
echo "Secret Admin Dashboard Content\n";