У меня возникла проблема с проверкой подлинности электронной почты.PHP сначала отправляет данные в базу данных, затем проверяет
Проверка подлинности электронной почты работает, но она сначала отправляет форму, и если я обновляю страницу и отправляю те же данные снова, она проверяется. Почему он не проверяет перед отправкой?
Мой код:
<?php
include_once 'init.inc.php';
// database connection
error_reporting(E_ALL);
// function for Registration
function regUser($db)
{
$password = password_hash($_POST['password3'], PASSWORD_BCRYPT);
$sql = "INSERT INTO users SET username = '{$_POST['username']}', email = '{$_POST['email']}', password = '$password', laender = '{$_POST['selection']}'";
$result = $db->query($sql);
return $result;
}
// function for emailValidation
function emailValidate()
{
$email1 = $_POST['email'];
$email1 = filter_var($email1, FILTER_SANITIZE_EMAIL);
if (!filter_var($email1, FILTER_VALIDATE_EMAIL))
{
return true;
}
else
{
return false;
}
}
// function to check if username already registered
function usernameExists($db)
{
$sql = "SELECT username FROM users WHERE username='" . $_POST['username'] . "'";
$result = $db->query($sql);
if (mysqli_num_rows($result) > 0)
{
return true;
}
else
{
return false;
}
}
// function to check if email already exists in database
function emailExists($db)
{
// var_dump(emailExists($db));
$sql = "SELECT email FROM users WHERE email = '" . $_POST['email'] . "'";
$result = $db->query($sql);
if (mysqli_num_rows($result) > 0)
{
return true;
}
else
{
return false;
}
}
// sending data to database
if (isset($_POST['submit']))
{
// var_dump(usernameExists($db));
// var_dump(emailExists($db));
if (emailValidate() === false)
{
}
else
{
echo 'Please enter a valid email adress';
}
if (usernameExists($db) === false && emailExists($db) === false)
{
regUser($db);
}
else
{
die("Username/Email already exists!");
}
}
Имя пользователя и E-mail существует функция работает нормально. Проверяется только подтверждение по электронной почте после отправки формы.
Я вижу много вещей, которые нужно улучшить в этом коде, буй скажи мне. Появляются ли какие-либо ошибки? – Phiter
ошибок не отображается, он проверяет достоверность, но только после его отправки в базу данных – RedFire