как указано в моем имени пользователя, отчаянно нужна помощь, так что извините, если это дублированный пост!
Я пытаюсь создать страницу входа, которая перенаправляет меня на мою домашнюю страницу в случае сбоя аутентификации, поэтому мой ввод будет перекрестной проверкой с базой данных (mysql), а затем выведет либо успешно, либо ошибку. но результат всегда показывает ошибку. Я почти уверен, что он не вошел в мой 1-й оператор проверки.
Как показано ниже, мой код:
<?php
$servername = "localhost";
$username = "read";
$password = "projecttest";
$dbname = "test-member";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$password1 = $_POST["password"];
$username1 = $_POST["username"];
$chkpassword = " SELECT password FROM member WHERE password = $password1 ";
$chkusername = " SELECT username FROM member WHERE username = $username1";
if ($conn->query($chkpassword) == TRUE ) {
echo "successful log in"
?>
<INPUT TYPE = "hidden" NAME = "redirect"
VALUE = "http://localhost/IPproject_test1/home.php">
<?php
}
else if ($conn->query($chkpassword) == FALSE ) {
echo "error";
}
$conn->close();
?>






Проблема в вашем запросе.
Предположим, пользователь вводит пароль asdf1234. Ваш запрос будет выглядеть так:
SELECT password FROM member WHERE password = asdf1234
Это не удастся, потому что MySQL считает asdf1234 столбцом. Если вы экранируете строку, она должна сработать.
$chkpassword = "SELECT password FROM member WHERE password = '{$password}'"
Итак, запрос выглядит так:
SELECT password FROM member WHERE password = 'asdf1234'
Я все равно не стал бы проверять на == TRUE, но на !== null