Vahid
4 سال پیش توسط Vahid مطرح شد
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 'جدید';
        }
    }
}

ثبت پرسش جدید
رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 4 سال پیش مطرح شد
1

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


Saman
تخصص : برنامه نویس وب
@samanzdev 4 سال پیش مطرح شد
1

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


Vahid
تخصص : برنامه نویس مبتدی
@vahiid 4 سال پیش آپدیت شد
0

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

@samanzdev
@rezajahangir


Saman
تخصص : برنامه نویس وب
@samanzdev 4 سال پیش مطرح شد
0

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


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 4 سال پیش مطرح شد
1

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


Vahid
تخصص : برنامه نویس مبتدی
@vahiid 4 سال پیش آپدیت شد
0

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

@samanzdev


Saman
تخصص : برنامه نویس وب
@samanzdev 4 سال پیش آپدیت شد
1

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


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

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