как предотвратить отправку дубликата электронной почты - PullRequest
1 голос
/ 17 января 2020

Я ищу способ вернуть сообщение в моей форме, если отправленное письмо уже существует. я хочу 4-е, если будет выполнено

    $conn = new PDO("mysql:host=localhost;dbname=ali","root","");
    $sql = "insert into admin(id,email,password,repeatpass) values(null,?,?,?)";
    $result = $conn->prepare($sql);
    $result ->bindValue(1,$_POST["email"]);
    $result ->bindValue(2,$_POST["pass"]);
    $result ->bindValue(3,$_POST["repeat"]);
    $number = $result->rowCount();



    if (empty($_POST["email"]) or empty($_POST["pass"]) or empty($_POST["repeat"])){
        echo "fill all the blanks";
    }
    else if(strlen($_POST["pass"]) < 6){
        echo "password should not be less than 6 characters!";
    }
    else if($_POST["pass"] !== $_POST["repeat"]){
        echo "passwords not matched";
    }
    else if($number > 0){
        echo "is already exist";
    }
    else{

        $result->execute();
        echo "successfuly registered";
    }

1 Ответ

0 голосов
/ 18 января 2020

Вам нужно перехватить затронутые строки и решить, хотите ли вы отправить сообщение.

Позволяет адаптировать некоторый ваш код:

    $query = $result->execute();
    if ($query == 1) {                    // 1 - one row affected means inserted
        echo "successfuly registered";
    } else {                              // 0 - no row affected means no insert
        echo "Sorry - No Insert done. User exists / failure in database.";  // this replaces your code above
    }

Между: Ваша кодовая строка

    $number = $result->rowCount();

приходит рано. Вы не выполнили запрос до сих пор. Поэтому вы можете удалить следующее:

else if($number > 0){
    echo "is already exist";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...