Проверка того, что электронное письмо уже занято в базе данных - PullRequest
0 голосов
/ 31 мая 2018
else if (isset($_POST['register'])) {
    $user = $_POST['username'];
    $pass = $_POST['password'];
    $email = $_POST['email'];
    $phash = sha1(sha1($pass."salt")."salt");

    $sql = "INSERT INTO users (id, username, password, email) VALUES ('', '$user', '$phash', '$email');";

    $result = mysqli_query($conn, $sql);
}

Как добавить здесь средство проверки электронной почты, чтобы никто не мог иметь тот же адрес электронной почты при регистрации

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Как сказано выше, вы должны использовать подготовленный оператор, но с mysqli_real_escape_string и htmlspecialchars также хорошим способом предотвратить инъекцию sql, о вашем ответе, вы должны выбрать свою таблицу, чтобы увидеть, существует ли какое-либо существующее электронное письмо, как показано ниже:

    if (isset($_POST['register'])) {
        $user = $_POST['username'];
        $pass = $_POST['password'];
        $email = $_POST['email'];
        $phash = sha1(sha1($pass."salt")."salt");
    $sql = mysqli_query($conn,"SELECT email FROM users WHERE email = '{$mail}'");

    if(mysqli_num_rows($sql) > 0)
    {
    echo "Email exist";
    }else
    {
        $sql = "INSERT INTO users (`username`, `password`, `email`) VALUES ('$user', '$phash', '$email')";
        $result = mysqli_query($conn, $sql);

 }   
}

и лучше обернуть имя вашего столбца этим "` ", еще одна вещь, если ваш идентификатор - автоинкремент, опустите столбец id, вам не нужно добавлять столбец id в запросе INSERT.

0 голосов
/ 31 мая 2018

вы можете выбрать электронное письмо из ваших записей, чтобы увидеть, не забрал ли кто-нибудь это электронное письмо, или добавить уникальный индекс в столбец электронной почты, чтобы убедиться, что поле электронной почты уникально.Кстати, лучше использовать подготовленное заявление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...