بررسی تکراری نبودن اطلاعات ثبت نام

پرسیده شده
فعالیت 1146 روز پیش
دیده شده 542 بار
0

سلام

ببخشید من تو تابع رجیستر،ابتداش این کدو زدم که بررسی کنه کاربر اگر با این ایمیل قبلا ثبت نام کنه نذاره ثبت نامی انجام بشه، ولی نمیدونم چرا هر داده ای که ورودی میدم، میگه که این تو دیتابیس هست، جایی رو بد داره بررسی میکنه؟؟

function register($userData){
    global $pdo;
    $pass = password_hash($userData['password'], PASSWORD_BCRYPT);

    $checkExistQuery = "SELECT id FROM users WHERE email LIKE :enterEmail";
    $Checkstmt = $pdo->prepare($checkExistQuery);
    $isExist = $Checkstmt->execute([':enterEmail' => $userData['email']]);
    if($isExist){
        echo "You have already registered with this email!";
        return false;   
    }
   else{   
    $sql = "INSERT INTO users (name, email, password) VALUES (:name, :email, :pass);";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':name' => $userData['name'], ':email' => $userData['email'], ':pass' => $pass]);
    return $stmt->rowCount() ? true : false;
    }
}

 و یه سوال دیگه ای که داشتم اینه که توی PHP اگر بخواهیم همراه return محتوایی رو چاپ کنیم امکانش هست یا نه ؟

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

message("Registration Error!<br><br>" . $result, "success");

 

فایل پیوست

امیر ابوئی
امیر ابوئی

19 اسفند 99

2
حذف شده

سلام.

متد execute در صورتی که عملیات رو انجام بده true برمیگردونه و ربطی به کوئری شما نداره.

باید از متد rowCount استفاده کنید:

$checkExistQuery = "SELECT id FROM users WHERE email LIKE :enterEmail";
$Checkstmt = $conn->prepare($checkExistQuery);
$Checkstmt->execute([':enterEmail' => $userData['email']]);
$count = $Checkstmt->rowCount();
if($count){
    echo "You have already registered with this email!";
    return false;   
}

return کارش برگردوندن خروجیه داخل تابع، اگر هم در خارج از تابع استفاده کنید برنامه exit میشه. عمل echo رو انجام نمیده. میتونید از تابع die استفاده کنید تا هم خروجی چاپ کنه و هم exit کنه.

die('Good BYE!');

 

فایل پیوست

محسن موحد

توسط

محسن موحد

19 اسفند 99