راکت

جلوگیری از تکرار ذخیره نام کاربری یکسان در دیتابیس

7 پاسخ

سلام بنده جهت جلوگیری از ثبت نام های تکراری از کدی که در زیر ساختم استفاده میکنم این کد نام کاربری یکسان رو محدود میکنه میخواستم بپرسم این کد به تنهایی کافیه ای باید اقدام دیگه ای هم انجام بدم./ کد من الان کار میکنه!

<?php
function Register(){
    global $conn;
    if (isset($_POST['submit'])){
        $username = $_POST['username'];
        $sql_user = $conn->prepare("SELECT user_name FROM users WHERE user_name = '$username'");
        $sql_user->execute();
        $row = $sql_user->fetch(PDO::FETCH_ASSOC);
        if($row){
            echo 'تکراری';

        }else{
            echo 'جدید';
        }
    }
}
ثبت پرسش جدید

پاسخ‌ها

7
رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

سلام.
اولین نکته ای که باید بهش توجه کنید اینه که داخل جدولتون فیلد موردنظر رو unique در نظر بگیرید و موقع ثبت اطلاعات validation هم انجام بدین و در اعتبارسنجی هم این مورد رو چک کنید که اگه قبلا ذخیره شده به کاربر ارور بده و اجازه ثبت داده نشه.
موفق باشید.

Saman
Saman
@samanzdev

تخصص: برنامه نویس وب

سلام
شما در ابتدا باید فیلد هایی داخل شون اطلاعات ذخیره میشن ( به خصوص فیلد email) باید یونیک باشه. همچنین باید ولیدیشن هم انجام بدید که اگه کاربر قبلا ثبت نام کرده بود به صفحه ای دیگه ای ریدایرکت بشه و مانع از ثبت اطلاعات تکراری بشه ( شما اگه فیلد ها رو یونیک کنید ذخیره نمیشه)
@vahidmto

شاید پاسخ شما همین‌جا باشد

Vahid
Vahid
@vahiid

تخصص: برنامه نویس مبتدی

با توجه به توضیحات شما کد بنده دیگه لزومی نداره نوشته بشه چون حالت یونیک رو چک کردم به نظر بهتر از شرط منه حالا یک سوال در حالت یونیک مقدار تکراری یک خطایی میده چطور میتونم اون خطا رو هندل کنم به متن مورد نظر ؟!

@samanzdev
@rezajahangir

Saman
Saman
@samanzdev

تخصص: برنامه نویس وب

چه خطایی میده؟
@vahidmto

رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

چرا نباید نوشته بشه در واقع شما با این کد یه درخواست به سرور ارسال میکنید و اگه فیلدی تکراری بود اجازه ذخیره داده نمیشه، حالا شما باید بررسی کنید که اگه اون فیلد تکراری بود، کاربر در همون صفحه باقی بمونه و متن ارور بهش نمایش داده بشه.

Vahid
Vahid
@vahiid

تخصص: برنامه نویس مبتدی

خطای دیتابیس میده چون اجازه نداره مقدار تکراری وارد کنه این خطای دیتابیس رو چطور میتونم با php هندل کنم ( خطا فقط موقع ارسال مقدار تکراری میاد )

@samanzdev

Saman
Saman
@samanzdev

تخصص: برنامه نویس وب

سلام مجدد
خب شما می تونید کدتون رو داخل try catch قرار بدید. به این شکل می تونید داخل catch اررور رو هندل کنید
@vahidmto

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام