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

Editing and Updating Existing Records تعديل السجلات الحالية وتعبئة النموذج بأمان

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

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

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

عند عرض نموذج التعديل، املأ خاصية value للحقول عبر htmlspecialchars($old["title"] ?? $task["title"], ENT_QUOTES, "UTF-8") وأرسل التعديلات بطلب POST.

  • قدّم القيمة المؤقتة $old["title"] على قيمة قاعدة البيانات $task["title"] حتى لا تضيع تعديلات المستخدم عند حدوث خطأ تحقق.
  • قيّد استعلام التحديث UPDATE بالشرط المزدوج WHERE id = :id AND user_id = :uid.
  • حوّل الصفحة بنمط PRG فور نجاح التحديث.

قام المالك الشرعي 42 بتحديث المهمة 10 بنجاح، وأكدت rowCount() تعديل صف واحد.

مخطط تدفق التنفيذ العملي لقسم تعديل السجلات الحالية وتعبئة النموذج بأمان في لغة PHP
PHP
<?php

$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE tasks (id INTEGER PRIMARY KEY, user_id INT, title TEXT)');
$pdo->exec("INSERT INTO tasks VALUES (10, 42, 'Draft Lesson')");

$stmt = $pdo->prepare('UPDATE tasks SET title = :t WHERE id = :id AND user_id = :u');
$stmt->execute(['t' => 'Published Lesson', 'id' => 10, 'u' => 42]);

echo "Updated Rows: " . $stmt->rowCount() . "\n";