на стороне сервера php проверка электронной почты не работает - PullRequest
0 голосов
/ 18 июня 2020

Я практикую PHP, и я создал форму регистрации, которая выполняет проверку на стороне клиента, а также на стороне сервера. Javascript отлично работает и выполняет на стороне клиента, но я удалил все javascript, чтобы увидеть, работает ли серверная сторона, но он не работает и отправляет форму, не показывая моих ошибок.

Вот Код на стороне сервера:

if($_POST)
{

    $query = "SELECT `email` FROM `users` where email =" . "'" . $_POST['Email'] . "'";

    $result = mysqli_query($db,$query);

    $row = mysqli_fetch_array($result);

    if($_POST['Email'] == $row['email'])
    {

        $error .= "This Email address is already registered with us";

    }

    if($error != "")
    {

        $error = '<div class="alert alert-danger" role="alert"><p>There were error(s) in your form:</p>' . $error . '</div>';

    }
}

Вот код формы:

<form method="post">
                <div class="form-group">
                    <label for="Email">Email address</label>
                    <input type="email" class="form-control" id="Email" name="Email" aria-describedby="emailHelp">
                    <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
                </div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>

1 Ответ

1 голос
/ 18 июня 2020

Выполнение запроса SELECT всегда будет приводить к массиву, поэтому $ row - это массив, и электронная почта должна быть проверена следующим образом

if($_POST['Email'] == $row['email'])

Регистрация переменной $ row даст вам больше информации.

Есть и другие способы проверить, нашел ли что-то запрос, посмотрите: https://www.php.net/manual/de/mysqli-result.num-rows.php

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