Не срабатывает ошибка о не совпадение паролей!
Думаю ошибка в основном if но не пойму в чем!
<?php
session_start();
require_once 'connect.php';
if(!empty($_POST['full_name']) && !empty($_POST['login']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_confirm'])){
$full_name = $_POST['full_name'];
$login = $_POST['login'];
$email = $_POST['email'];
$password = $_POST['password'];
$password_confirm = $_POST['password_confirm'];
$query = "INSERT INTO users (full_name, login, email, password) VALUES ('$full_name','$login','$email','$password')";
$result = mysqli_query($connect, $query);
$_SESSION['message'] = "Регистрация прошла успешно";
header( 'Location: index.php');
} else if ($_POST['full_name'] == ""){
$_SESSION['message'] = "Вы не ввели ФИО";
header('Location: register.php');
} else if($_POST['login'] == ""){
$_SESSION['message'] = "Вы не ввели логин";
header('Location: register.php');
} else if($_POST['email'] == ""){
$_SESSION['message'] = "Вы не ввели email";
header('Location: register.php');
} else if($_POST['password'] == ""){
$_SESSION['message'] = "Вы не ввели пароль";
header('Location: register.php');
} else if($_POST['password_confirm'] != $_POST['password']){
$_SESSION['message'] = "Пароли не совпадают";
header('Location: register.php');
}
Ответы (2 шт):
Автор решения: Sergey Danyleiko
→ Ссылка
$full_name = $_POST['full_name'];
$login = $_POST['login'];
$email = $_POST['email'];
$password = $_POST['password'];
$password_confirm = $_POST['password_confirm'];
if (!empty($full_name) && !empty($login) && !empty($email) && !empty($password) &&
$password == $password_confirm) {
$query = "INSERT INTO users (full_name, login, email, password) VALUES ($full_name, $login, $email, $password)";
$result = mysqli_query($connect, $query);
$_SESSION['message'] = "Регистрация прошла успешно";
header('Location: index.php');
} else if (empty($full_name)) {
$_SESSION['message'] = "Вы не ввели ФИО";
header('Location: register.php');
} else if (empty($login)) {
$_SESSION['message'] = "Вы не ввели логин";
header('Location: register.php');
} else if (empty($email)) {
$_SESSION['message'] = "Вы не ввели email";
header('Location: register.php');
} else if (empty($password)) {
$_SESSION['message'] = "Вы не ввели пароль";
header('Location: register.php');
} else if ($password_confirm != $password) {
$_SESSION['message'] = "Пароли не совпадают";
header('Location: register.php');
}
Автор решения: nightflash
→ Ссылка
У вас сначала идёт проверка на заполнение всех полей. И только если одно из полей не заполнено, то только тогда проверяются условия. Это неверно.
if(!isset($_POST['full_name']) && !isset($_POST['login']) && !isset($_POST['email']) && !isset($_POST['password']) && !isset($_POST['password_confirm'])){
$full_name = $_POST['full_name'];
$login = $_POST['login'];
$email = $_POST['email'];
$password = $_POST['password'];
$password_confirm = $_POST['password_confirm'];
if (empty($full_name)) {
$_SESSION['message'] = "Вы не ввели ФИО";
header('Location: register.php');
} else if (empty($login)) {
$_SESSION['message'] = "Вы не ввели логин";
header('Location: register.php');
} else if (empty($email)) {
$_SESSION['message'] = "Вы не ввели email";
header('Location: register.php');
} else if (empty($password)) {
$_SESSION['message'] = "Вы не ввели пароль";
header('Location: register.php');
} else if ($password_confirm != $password) {
$_SESSION['message'] = "Пароли не совпадают";
header('Location: register.php');
} else {
$query = "INSERT INTO users (full_name, login, email, password) VALUES ($full_name, $login, $email, $password)";
$result = mysqli_query($connect, $query);
$_SESSION['message'] = "Регистрация прошла успешно";
header('Location: index.php');
}
}