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

Rendering Safe Search Results in DOM عرض نتائج البحث بأمان عبر textContent

ابنِ محرك بحث فوري الإكمال التلقائي باستخدام PHP 8 واستعلامات PDO المحضرة بـ LIKE واستجابات JSON وتأخير الإدخال Debounce.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

عند عرض نتائج البحث الفوري في المتصفح، أنشئ عناصر القائمة عبر document.createElement() وأسند العناوين عبر خاصية textContent الآمنة.

  • لا تقم أبداً ببناء عناصر القائمة المنسدلة بدمج النصوص مباشرة داخل resultsBox.innerHTML += "...".
  • استخدم document.createElement("a")، واضبط الرابط a.href = item.url، والعنوان a.textContent = item.title.
  • اعرض رسالة واضحة للمستخدم عند عدم وجود نتائج متطابقة (عندما يكون data.results.length === 0).

يضمن تنظيف المعرف النصي على الخادم أن يكون item.url مساراً نسبياً آمناً دائماً، بينما تتكفل textContent في المتصفح بعرض العنوان بأمان.

PHP
<?php
// Server-side validation of generated result URLs before JSON output
function buildSafeSearchResult(int $id, string $title, string $slug): array {
    $cleanSlug = preg_replace('/[^a-z0-9-]/', '', strtolower($slug));
    return [
        'id'    => $id,
        'title' => $title,
        'url'   => '/tutorials/php/' . $cleanSlug,
    ];
}

$item = buildSafeSearchResult(91, 'Live Search <PDO>', 'php-ajax-live-search');
echo json_encode($item) . "\n";