شرح صفوف ومحتوى الفقرة
يقوم استعلام العرض في لوحة التحكم بفلترة المهام حسب معرف المستخدم المسجل user_id، وتطبيق بحث LIKE اختياري، وتقسيم الصفحات عبر LIMIT وOFFSET.
- اضبط رقم الصفحة عبر
$page = max(1, (int) ($_GET["page"] ?? 1))لمنع الأرقام السالبة أو الصفرية. - رمّز كل حقل نصي عبر
htmlspecialchars($row["title"], ENT_QUOTES, "UTF-8")عند طباعته في جدول HTML. - قيّد الاستعلام بالشرط
WHERE user_id = :uidليرى كل مستخدم سجلاته الخاصة فقط.
تحسب الصفحة 2 إزاحة قدرها 10 سجلات، وتبطل دالة htmlspecialchars() وسم السكريبت الخبيث.
PHP
<?php
$page = max(1, (int) ($_GET['page'] ?? 2));
$perPage = 10;
$offset = ($page - 1) * $perPage;
$rawTitle = '<script>alert(1)</script>Deploy App';
$safeTitle = htmlspecialchars($rawTitle, ENT_QUOTES, 'UTF-8');
echo "Page $page -> LIMIT $perPage OFFSET $offset\n";
echo "Escaped Row: $safeTitle\n";