Вход через параметризованный запрос не работает - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь реализовать вход в MySQL через параметризованный запрос, но ниже он не работает - фрагмент кода.

<?php
echo "hello";
$email=$_POST["username"];
$pass=$_POST["password"];
$servername = "127.0.0.1";
$username = "root";
$password = "toor";
$db="SQLINJECTION";
$conn = mysqli_connect($servername, $username, $password, $db);

if (!$conn){
    die("connection failure".mysqli_connect_error());
}
echo "success";

$stmt = mysqli_prepare($conn,"SELECT * FROM users WHERE username = ? AND password = ?");
mysqli_stmt_bind_param($stmt, "s", $email);
mysqli_stmt_bind_param($stmt, "s", $pass);
mysqli_stmt_execute($stmt);
$row=mysqli_stmt_fetch($stmt);
if($row){
    echo "found";
}
else{
echo "not found";
}
mysqli_close($conn);

?>

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Попробуйте это

$stmt = mysqli_prepare($conn,"SELECT * FROM users WHERE username = ? AND password = ?");
mysqli_stmt_bind_param($stmt, "ss", $email,$pass);
mysqli_stmt_execute($stmt);
$row=mysqli_stmt_fetch($stmt);
0 голосов
/ 07 июня 2018

У вас должен быть только 1 оператор связывания, объединяющий все значения, которые вы хотите связать ...

mysqli_stmt_bind_param($stmt, "s", $email);
mysqli_stmt_bind_param($stmt, "s", $pass);

должно быть

mysqli_stmt_bind_param($stmt, "ss", $email, $pass);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...