Простой вопрос. Как заставить запрос работать? Я знаю, что вы не можете напрямую использовать $_POST
в запросе. Но я не знаю, как заставить это работать.
$sql = 'SELECT * FROM users WHERE `password` = $_POST[password] AND `username` = $_POST[username]';
$result = mysqli_query($link, $sql);
if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysqli_error($link);
exit;
Я также попытался с помощью mysqli_real_escape_string так:
$username_sql = mysqli_real_escape_string($link, $_POST['username']);
$password_sql = mysqli_real_escape_string($link, $_POST['password']);
Это не работает, как и планировалось. Как это все еще не работает.
Спасибо,
Майк
Поскольку вы уже используете MySQLi, вы должны сделать это с помощью [подготовленных операторов/переменных связывания] (http://www.php.net/manual/en/function.mysqli-bind-param.php). .. вы не должны вводить введенные пользователем значения непосредственно в строку запроса SQL –
И вы, конечно же, не должны хранить пароли открытого текста в своей базе данных .... использовать встроенный PHP [password_hash()] (http: // www .php.net/ручной/EN/function.password-hash.php)/[password_verify()] (http://www.php.net/manual/en/function.password-verify.php) .... узнайте правильный способ сделать это сейчас, и вам не нужно будет снова изучать его позже. –
Используйте подготовленные заявления, пожалуйста! – rray