شرح صفوف ومحتوى الفقرة
تفحص دالة حارس المصادقة (Auth Guard) وجود isset($_SESSION["user_id"]) في بداية كل صفحة محمية، وتحول الزوار غير المسجلين إلى /login فوراً.
- اجمع الفحص في دالة موحدة قابلة لإعادة الاستخدام مثل
requireAuth(). - استدعِ دائماً
exit;فور إرسال رأس التحويلLocation: /loginحتى لا يُنفذ الكود الخاص أسفله. - في صفحات الإدارة، أضف فحصاً ثانياً يتحقق من الصلاحية
$_SESSION["user_role"] === "admin".
عند غياب user_id يمنع الحارس الوصول، وعند وجوده يسمح للمتحكم بالمتابعة.
PHP
<?php
function checkAuthGuard(array $session): string
{
if (empty($session['user_id'])) {
return 'Redirect -> /login (401 Unauthorized)';
}
return 'Access Granted for User #' . $session['user_id'];
}
echo checkAuthGuard([]) . "\n";
echo checkAuthGuard(['user_id' => 42]) . "\n";