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

Creating Records with CSRF and PRG إضافة سجل جديد مع التحقق وحماية CSRF ونمط PRG

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

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

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

تجمع عملية إضافة سجل جديد بين فحص توكن CSRF، والتحقق من المدخلات، واستعلام INSERT محضر مرتبط بـ $_SESSION["user_id"]، ثم تحويل 303 See Other.

  • خذ معرف المالك user_id دائماً من جلسة الخادم الموثوقة $_SESSION["user_id"] وليس من حقل مخفي في النموذج!
  • تحقق من أن النصوص المطلوبة غير فارغة وضمن الطول المسموح به للعمود.
  • احفظ رسالة نجاح مؤقتة في الجلسة قبل التحويل إلى قائمة السجلات.

تم ربط المهمة مباشرة بمعرف المستخدم الموثق في الجلسة وإدراجها باستعلام محضر.

PHP
<?php

$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE tasks (id INTEGER PRIMARY KEY, user_id INT, title TEXT)');

$sessionUserId = 42;
$title = trim('Ship PHP 8.4 Course');

$stmt = $pdo->prepare('INSERT INTO tasks (user_id, title) VALUES (:uid, :title)');
$stmt->execute(['uid' => $sessionUserId, 'title' => $title]);
echo "Inserted Task #" . $pdo->lastInsertId() . " for User #$sessionUserId\n";