روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ دانشجوی سون‌لرن
جلوگیری از ارور ایمیل تکراری
جامعه پی اچ پی ایجاد شده در ۰۷ مرداد ۱۴۰۱

سلام وقت بخیر.

استاد وقتی ایمیل تکراری ثبت میشه چطور میشه از ارورش جلوگیری کرد و پیغام دلخواه رو به کاربر نشون داد.

الان موقع ثبت ایمیل تکراری این ارور میاد.

Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'qq@gmail.com' for key 'Email' in C:\\xampp\\htdocs\\7learn.php\\ToDoList\\libs\\lib-auth.php:44 Stack trace: #0 C:\\xampp\\htdocs\\7learn.php\\ToDoList\\libs\\lib-auth.php(44): PDOStatement->execute(Array) #1 C:\\xampp\\htdocs\\7learn.php\\ToDoList\\auth.php(12): register(Array) #2 {main} thrown in C:\\xampp\\htdocs\\7learn.php\\ToDoList\\libs\\lib-auth.php on line 44

سلام دوست عزیز

۲ تا راه دارید

۱. قبل از ورود ایمیل از نبود اون مطمئن بشید!

۲. از بلاک try catch استفاده کنید

موفق باشید ?

محمد گازری ۰۷ مرداد ۱۴۰۱، ۱۹:۲۰

چطور میشه قبل از ورود مطمعن شد جناب گازری ؟

این روش میرم جلو ارور میده .

function register($userData)
{
        global $pdo;
        $pass = $userData['password'];
        $passHash = password_hash($userData['password'], PASSWORD_BCRYPT);
        $sql = "INSERT INTO `users` (name,email,password) VALUES (:user_name,:email,:pass);";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([':user_name' => $userData['fullname'], ':email' => $userData['email'], ':pass' => $passHash]);
        $result = $stmt -> rowCount();
        if ($result > 0)
        {
           Messeg("Your email is already registered");
           return $result = false;
        }
        return $result = true;
}
M ۰۷ مرداد ۱۴۰۱، ۱۹:۵۱

در ابتدا میتونید یه کوئری (select) بزنید به دیتابیس و اونجا بررسی کنید ببینید همچین ایمیلی داریم یا نه!

بهترین پاسخ
محمد گازری ۰۷ مرداد ۱۴۰۱، ۲۲:۳۵

آها ، خیلی ممنون جناب گازری ?

M ۰۷ مرداد ۱۴۰۱، ۲۲:۴۴