Есть сайт, на котором надо сделать форму авторизации. Она должна проверять наличие данного пользователя в MySQL по введенному им логину и паролю. Имеется табличка users, а в ней столбики id, login, password. Мной был написан код, определяющий кол-во id, где столбик login равен логину, введенному пользователем, И столбик password равен паролю, введенному пользователем и зашифрованным md5(т.к. в таблице пароли хранятся уже в зашифрованном виде). Если кол-во id будет не равно нулю, то нас должно перекинуть на другую страницу, но этого не происходит... Помогите, пожалуйста, решить проблему. Я думаю, что проблема может быть в header
e или в выборке из БД.(P.S.- в коде используется сессия) Вот сам код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Авторизация</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php
session_start();
$mysqli = new mysqli("domen", "login", "password", "DB");
if(isset($_POST["send"])){
$login = htmlspecialchars($_POST["login"]);
$pswrd = htmlspecialchars($_POST["password"]);
$_SESSION["login"] = $login;
$_SESSION["pswrd"] = $pswrd;
$error_login = "";
$error_pswrd = "";
$error_auth = "";
if (strlen($login) == 0) {
$error_login = "Введите login";
}
if (strlen($pswrd) == 0) {
$error_pswrd = "Введите пароль";
}
if ($mysqli->query("SELECT count(`id`) FROM `users` WHERE `login`='$login' AND `password`='".md5("$pswrd")."' ") != 0) {
header("Location: http://www.pupok.ru/Devices/show.php");
}
else {
$error_auth = "Учетная запись с таким логином не существует";
}
}
?>
<form name="feedback" action="" method="post">
<label>Введите ваш логин</label><br>
<input type="text" name="login" placeholder="Ваш логин" value="<?=$_SESSION["login"]?>">
<span style="color:red"><?=$error_login?></span><br>
<label>Введите ваш пароль</label><br>
<input type="password" name="password" placeholder="Ваш пароль" value="<?=$_SESSION["pswrd"]?>">
<span style="color:red"><?=$error_pswrd?></span>
<span style="color:red"><?=$error_auth?></span><br>
<input type="submit" name="send" value="Отправить">
</form>
</body>
</html>
$mysqli->query не возвращает результат. Вам нужно еще выбрать результат и уже результат сравнивать
if ($myquery = $mysqli->query("SELECT count(`id`) as cnt FROM `users` WHERE `login`='$login' AND `password`='".md5("$pswrd")."' ") != 0) {
if ($row = $myquery->fetch_assoc() && $row['cnt']>0) {
header("Location: http://www.pupok.ru/Devices/show.php");
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Возникла проблема: внезапно сайт поставщика, с которого я собираю остатки начал отдавать пустой результатfile_get_contents возвращает пустоту