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

Checking Email Uniqueness with PDO فحص عدم مسجلية البريد الإلكتروني مسبقاً عبر PDO

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

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

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

استعلم من جدول users عبر استعلام محضر SELECT id FROM users WHERE email = :email LIMIT 1 لإظهار رسالة واضحة إذا كان البريد مسجلاً مسبقاً.

  • استخدم $stmt->fetchColumn() للتحقق مما إذا كان الاستعلام يرجع معرف مستخدم موجود.
  • حتى مع هذا الفحص المسبق، احتفظ بقيد UNIQUE في الجدول لمنع تضارب الطلبات المتزامنة.
  • التزم دائماً بالمعاملات المربوطة (:email) لمنع حقن SQL.

ترجع fetchColumn() معرف السجل المطابق، مما ينبه التطبيق بأن البريد مسجل بالفعل.

PHP
<?php

$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE users (id INTEGER PRIMARY KEY, email TEXT UNIQUE)');
$pdo->exec("INSERT INTO users (email) VALUES ('[email protected]')");

$stmt = $pdo->prepare('SELECT id FROM users WHERE email = :email LIMIT 1');
$stmt->execute(['email' => '[email protected]']);
$exists = (bool) $stmt->fetchColumn();

echo $exists ? "Email already registered!\n" : "Email available.\n";