Я хочу выбрать пароль пользователя, чтобы он мог войти на мой веб-сайт (только для членского веб-сайта). У меня есть хеш пароля и имени пользователя, записанного в таблицу под названием «пользователи» при создании учетной записи. Я не знаю, как выбрать строку в таблице, поэтому я получаю ошибку, когда код ищет, что-то?
Я нашел это на w3, но не понимаю, что означает каждая часть кода. Я пытался отредактировать код, чтобы он соответствовал моему пользовательскому варианту, но я не знаю, как это сделать.
$servername = "127.0.0.1";
$dbusername = "root";
$dbpassword = "";
$dbname = "users";
//create connection to db
$conn = new mysqli($servername, $dbusername, $dbpassword, $dbname);
$sql = "SELECT id, username, password FROM users";
$result == $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row == $result->fetch_assoc()) {
echo $userid = $row["id"] && $serverpassword = $row["password"] && $serverusername = $row["username"];
}
} else {
echo "User Lookup Failed";
}
$conn->close();
@halfer Я их хеширую до того, как они достигают сервера.
прикрепить как правильную ссылку






Вам не нужно выбирать все записи из базы данных, а затем повторять их все, чтобы проверить правильность пользователя. Кроме того, вы должны выбрать пользователя только по имени пользователя и паролю, как показано ниже:
$sql = "SELECT id, username, password FROM users WHERE username = '".$serverusername."' AND `password` = '".serverpassword."' ";
Кроме того, вы должны использовать привязку данных вместо переменной, чтобы избежать внедрения SQL.
Это PDO, а я использую Mysqli, поэтому не работает.
Неважно, Query будет одинаковым в PDO и Mysqli. Я просто предлагаю изменить ваш подход.
Вам не нужно получать все строки, да и не нужно. Вместо этого используйте предложение WHERE в вашем оператор выбора. Обратите внимание на выражения, функции и операторы, которые вы можете использовать для предложений where. Убедитесь, что вы используете подготовленные заявления и bind_param для предотвращения SQL-инъекций и проблем с цитированием.