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

Hashing Password and Inserting the User تشفير كلمة المرور وإدراج الحساب الجديد بأمان

ابنِ نظام تسجيل مستخدمين متكاملاً في PHP 8 يجمع التحقق من CSRF وتنقية المدخلات وفحص عدم تكرار البريد وتشفير كلمة المرور وحفظها بـ PDO.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

بمجرد نجاح التحقق، جزّئ كلمة المرور عبر password_hash($password, PASSWORD_DEFAULT) وأدرج السجل باستعلام PDO محضر.

  • لا تخزن أو تطبع أو تسجل كلمة المرور النصية الخام في أي مكان أبداً.
  • تولّد دالة password_hash() ملحاً تشفيرياً عشوائياً تلقائياً وتدمجه داخل النص الناتج.
  • احصل على معرف المستخدم الجديد عبر (int) $pdo->lastInsertId().

تمت تجزئة كلمة المرور بأمان قبل تنفيذ استعلام الإدراج المحضر، وأرجعت lastInsertId() المعرف 1.

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

$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT, password_hash TEXT)');

$hash = password_hash('StrongPass!99', PASSWORD_DEFAULT);
$stmt = $pdo->prepare('INSERT INTO users (name, email, password_hash) VALUES (:n, :e, :p)');
$stmt->execute(['n' => 'Nour', 'e' => '[email protected]', 'p' => $hash]);

echo "Created User ID: " . $pdo->lastInsertId() . " (Hash len: " . strlen($hash) . ")\n";