Не проходит проверка на соответствие паролей введенный и из бд, помогите
<?php
if(isset($_POST['submit'])){
$login = htmlspecialchars(trim($_POST["login"]));
$password = htmlspecialchars(trim($_POST["password"]));
$login_error = "";
$password_error = "";
$not_found = "";
if(empty($login) && $password == ""){
$login_error = "Введите логин";
$password_error = "Введите пароль";
}
elseif(empty($login)){
$login_error = "Введите логин";
}
elseif($password == ""){
$password_error = "Введите пароль";
}
else{
$login = false;
$con = mysqli_connect("localhost", "root", "", "clause");
if(mysqli_connect_error()){
echo "Failed to connect to DataBase " . mysqli_connect_error();
}
$query = "SELECT `login`, `password` FROM `user`;";
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_array($result)){
if($password == $row['password'] && $login == $row['login']){
echo $password; // НЕ ВЫВОДИТ НИЧЕГО, ЕСЛИ ВЫЗВАТЬ ВНЕ WHILE ВЫВОДИТ ПЕРЕМЕННУЮ
header("Location: main_page.php");
}
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Log In - Clause</title>
<link rel="stylesheet" href="../styles/login_style.css">
</head>
<body>
<form method="post">
<div id="login_text">Вход</div>
<div id="not_found"><?=$not_found?></div>
<label for="login">Логин</label><br>
<input type="text" name="login" id="login" value="<?=$login?>"><br>
<label class="error"><?=$login_error?></label><br>
<label for="password">Пароль</label><br>
<input type="password" name="password" id="password"><br>
<label class="error"><?=$password_error?></label><br><br>
<input type="submit" name="submit" id="submit" value="Войти">
<div id="to_registration"><a href="../php/registration.php">Зарегестривроваться</a></div>
</form>
</body>
</html>
mysqli_fetch_array($result)
Как минимум надо исправить на
mysqli_fetch_assoc($result)
fetch_array - создает обычный массив, а вы далее обращаетесь к ассоциативному.
Также если у вас пароли хранятся в виде хешей, то необходимо хешировать ввод перед сравнением вывода из бд.
Чтобы в будущем избежать таких ошибок, пожалуйста, научитесь пользоваться дебаггером.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Почему-то возникает ошибка при вставке json в базу:
Работаю MS VS 201, Win 7Следующий код выводит не тот символ, какой надо: