Я пытаюсь исправить систему входа в систему из старого проекта друга, и я не могу заставить его принять законный логин вместо того, чтобы идти и проходить имя и идентификатор пользователя из БД, он просто выдает ошибку, даже когда он может получить правильное имя пользователя и идентификатор из БД. Любая идея, является ли эта часть кода причиной ошибки и что такое решение?Передача результатов от MySQL-запроса до входа в PHP-сессию
MySQL Query и PHP Session
<?php
$row = mysqli_fetch_assoc(mysqli_query($con,'SELECT id,usr FROM tz_members WHERE usr="{.$_POST[username]}" AND pass="{.$_POST[password]}"'));
if($row['usr'])
{
$_SESSION['usr'] = $row['usr'];
$_SESSION['id'] = $row['id'];
$_SESSION['rememberMe'] = $_POST['rememberMe'];
}
else {
//(display error message)
}
?>
Войти Форма
<form>
<label class="grey" for="username">Username:</label>
<input class="field" type="text" name="username" id="username" value="" size="23" />
<label class="grey" for="password">Password:</label>
<input class="field" type="password" name="password" id="password" size="23" />
<label><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" /> Remember me</label>
<div class="clear">
</div>
<input type="submit" name="submit" value="Login" class="bt_login" />
</form>
Полный код
это ваш зашифрованный пароль в БД? – mith
Привет, во-первых, НИКОГДА не используйте дезинфицированные входы. Я ссылаюсь здесь на ваше прямое использование $ _POST ['username'] и $ _POST ['password']. В настоящее время становится общепринятой практикой использовать параметризованный SQL. Возможно, стоит также взглянуть на уровень абстракции базы данных, такой как доктрина, так как вы выиграете от исследования высокопрофессиональных людей и безопасности, которую они реализуют. В любом случае, что произойдет, когда вы запустите этот SQL-запрос в PHPMyAdmin? Он что-то возвращает? Кроме того, что, если вы var_dump mysqli num_rows? –
@mith В настоящее время нет, только для целей тестирования. Будет сделано позднее. – Fortera