Добрый день, подскажите пожалуйста, как бы вы сделали обработку ошибок? Я Объявляю переменную со счетчиком ошибок и массив ошибок. Что меня смущает: ниже я говорю : если счетчик не равен нулю, значит выводи ошибки, а если else то счетчик равен нулю, но в коде ниже мне тоже надо обрабатывать ошибки, поэтому там на определенных ветках счетчик увеличивается. Вопрос в том нормально ли заходить в ветку по else (по условию счетчик нулевой) и потом внутри увеличивать его... а иначе как обрабатывать ошибки ? Всем добра!
if ($errorCount !== 0) {
foreach ($errorMessage as $key => $value) {
echo $value."<br>";
}
} else {
<?php
$errorMessage = [];
$errorCount = 0;
if (isset($_POST["auth_submit"])) {
//заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (trim($_POST["login"])) {
$login = trim($_POST['login']);
if (!preg_match("/^[a-zA-Z0-9_-]{3,20}$/", $login)) {
$errorCount++;
$errorMessage[] = "Логин содержит некорректные символы";
}
} else {
$errorCount++;
$errorMessage[] = "Введите логин!";
unset($login);
}
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (trim($_POST["password"])) {
$password = trim($_POST['password']);
if (!preg_match("/^[a-zA-Z0-9_-]{3,20}$/", $password)) {
$errorCount++;
$errorMessage[] = "Пароль содержит некорректные символы";
}
} else {
$errorCount++;
$errorMessage[] = "Введите пароль!";
unset($password);
}
if ($errorCount !== 0) {
foreach ($errorMessage as $key => $value) {
echo $value."<br>";
}
} else {
//echo "Данные корректны";
$login = trim($_POST['login']);
$password = trim($_POST['password']);
//удаляем пользователей из двух таблиц, у которых истек срок годности проверки почты
$query = "DELETE FROM players WHERE email_active = 0 AND date_registration < (NOW() - INTERVAL ".$timeRemoveNoActivePlayers.");";
$result = dbDelete($query);
$query = "DELETE FROM confirm_players WHERE date_registration < (NOW() - INTERVAL ".$timeRemoveNoActivePlayers.");";
$result = dbDelete($query);
$query = "SELECT * FROM players WHERE login = '$login';";
$result = dbSelect($query);
if (!$result) {
$errorCount++;
$errorMessage[] = "Пользователь с таким логином не найден!";
//header("Location /");
}
if ($result) {
foreach ($result as $value) {
$dbLogin = $value["login"];
$dbPassword = $value["password"];
$dbEmailActive = $value["email_active"];
}
if ($dbEmailActive) {
if (password_verify($password, $dbPassword)) {
$_SESSION["login"] = $dbLogin;
header("Location: home.php");
//echo "Добро пожловать!";
} else {
//echo "Неверный пароль!";
$errorCount++;
$errorMessage[] = "Неверный пароль!";
//header("Location: /");
}
} else {
$errorCount++;
$errorMessage[] = "Вы не подтвердили свою почту!";
}
}
if ($errorCount !== 0) {
foreach ($errorMessage as $key => $value) {
echo $value."<br>";
}
}
}
}
?>