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

Listing Records with Search and Pagination عرض السجلات مع البحث الفوري وتقسيم الصفحات

اجمع التوجيه وحراسة المصادقة واستعلامات PDO المحضرة وتقسيم الصفحات وحماية CSRF وXSS في مشروع لوحة تحكم CRUD متكاملة بـ PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

يقوم استعلام العرض في لوحة التحكم بفلترة المهام حسب معرف المستخدم المسجل 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() وسم السكريبت الخبيث.

مخطط توضيحي: محاكي لوحة تحكم CRUD المتكاملة وفحص ملكية السجل في PHP 8
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";