البرمجة

تحقق من توفر البريد الإلكتروني واسم المستخدم في PHP

لدينا هنا كود PHP يقوم بفحص توفر البريد الإلكتروني في قاعدة البيانات، ولكنه لا يقوم بفحص اسم المستخدم. عند محاولتك لتحقيق ذلك من خلال إدراج التحقق من البريد الإلكتروني واسم المستخدم في الاستعلام، وجدت أن الكود لا يعمل كما ينبغي. دعني أقدم لك تحليلاً مفصلاً للكود وأقترح بعض التعديلات لإصلاح الأخطاء المحتملة.

لنبدأ بتحليل الكود:

php
require_once './config.php'; if (isset($_POST["sub"])) { $fname = ($_POST["fname"]); $lname = ($_POST["lname"]); $name = ($_POST["username"]); $pass = ($_POST["password"]); $email = ($_POST["email"]); // الاستعلام لفحص توفر البريد الإلكتروني واسم المستخدم $sql = "SELECT COUNT(*) AS count FROM users WHERE email = :email_id AND username = :username_id"; try { $stmt = $DB->prepare($sql); $stmt->bindValue(":email_id", $email); $stmt->bindValue(":username_id", $name); // تحديد قيمة اسم المستخدم بشكل صحيح هنا $stmt->execute(); $result = $stmt->fetchAll(); if ($result[0]["count"] > 0) { echo "
اسم المستخدم أو كلمة المرور غير صحيحة

"
; } else { // إذا كانت التحقق ناجحة، قم بإجراء الإدراج في حالة عدم وجود تكرار $sql = "INSERT INTO `users` (`username`, `password`, `email`, `firstname`, `lastname`) VALUES " . "( :name, :pass, :email, :fname, :lname)"; // ... استمر في تنفيذ إدراج البيانات في حالة عدم وجود تكرار } } catch (PDOException $e) { // يمكنك إضافة إجراءات إضافية هنا في حالة حدوث أي خطأ أثناء التنفيذ } } ?>

تحليل:

  1. قمت بتصحيح قيمة :username_id في الاستعلام لتكون $name بدلاً من $email، حيث يجب أن يتم فحص توفر اسم المستخدم.
  2. قمت بإصلاح بعض الأخطاء النحوية في الكود لضمان تنفيذه بشكل صحيح.

يجب عليك تتبع هذه التعديلات وتجربة الكود. إذا كانت لديك أي أسئلة إضافية أو تحتاج إلى مساعدة إضافية، فلا تتردد في طرحها.

المزيد من المعلومات

في سياق تطوير برامج PHP، يظهر الكود الذي قدمته كجزء من نظام لفحص توفر اسم المستخدم والبريد الإلكتروني في قاعدة البيانات. لنلقي نظرة على المزيد من المعلومات المتعلقة بالكود وكيف يعمل:

  1. استدعاء ملف التكوين:

    • يبدأ الكود بتضمين ملف التكوين config.php. يفترض أن يحتوي هذا الملف على تكوينات الاتصال بقاعدة البيانات والاستعداد للاستخدام في الملف الحالي.
  2. التحقق من النموذج:

    • يتحقق الكود مما إذا كانت النموذج قد تم إرساله (عبر POST) باستخدام isset($_POST["sub"]).
    • إذا كان النموذج قد تم إرساله، يتم استخراج البيانات من النموذج (اسم المستخدم، كلمة المرور، البريد الإلكتروني، الاسم الأول، والاسم الأخير).
  3. الاستعلام SQL:

    • يتم إنشاء استعلام SQL يستخدم SELECT COUNT(*) لجلب عدد الصفوف التي تحتوي على نفس قيم البريد الإلكتروني واسم المستخدم.
    • تم استخدام bindValue لتعيين قيم البريد الإلكتروني واسم المستخدم المستخدمة في الاستعلام.
  4. تنفيذ الاستعلام:

    • يتم تنفيذ الاستعلام باستخدام execute، ونتائج الاستعلام يتم حفظها في $result.
  5. التحقق من النتائج:

    • إذا كان عدد الصفوف ($result[0]["count"]) أكبر من صفر، يعني ذلك أن هناك تكرار لبريد إلكتروني أو اسم مستخدم في قاعدة البيانات. يظهر رسالة خطأ في هذه الحالة.
    • إذا لم يكن هناك تكرار، يتم إعداد استعلام إدراج جديد لإضافة المستخدم الجديد إلى قاعدة البيانات.
  6. التعامل مع الاستثناءات:

    • يوجد محاولة للتعامل مع الأخطاء باستخدام كتلة try...catch، حيث يمكن وضع إجراءات إضافية في حالة حدوث أي استثناء.

يجب على المطور تحديد ما إذا كان هناك مزيد من الأكواد المتعلقة بالنظام أو الصفحة التي يتم استخدامها. إذا كنت بحاجة إلى مزيد من المعلومات حول جوانب محددة أو إذا كنت تواجه مشكلة محددة، يمكنك توفير تفاصيل إضافية للحصول على دعم أفضل.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!