mysqli语句prepare出现问题



我的PHP代码有一个错误。该语句头("位置:/pulto_project/index.php?error=nouser"(;在我的else语句中,总是被执行。

我只是一个PHP新手,并不是什么都懂。请帮帮我。非常感谢。

<?php

if(isset($_POST['submit']))
{
require 'database_handler.inc.php';
$user_name = $_POST['name'];
$password = $_POST['password'];
if(empty($user_name) || empty($password) ) {
header("Location: /pluto_project/index.php?error=emptyFields&username=".$user_name);
exit();
}
else{
$sql = "SELECT * FROM users WHERE username=?";
$statement = mysqli_stmt_init($connection);
if(!mysqli_stmt_prepare($statement, $sql)){
header("Location: /pluto_project/index.php?error=sqlError");
exit();
}
else{
mysqli_stmt_bind_param($statement, "s", $username);
mysqli_stmt_execute($statement);
$result = mysqli_stmt_get_result($statement);
if($row = mysqli_fetch_assoc($result) ){
$password_check = password_verify($password, $row['upassword']);

if(!$password_check){
header("Location: /pluto_project/index.php?error=wrongpassword");
exit();
}
else if($password_check){
session_start();
$_SESSION['userID'] = $row['id_user'];
$_SESSION['userName'] = $row['username'];

header("Location: /pluto_project/index.php?login=success");
exit();

}
else{
header("Location: /pluto_project/index.php?error=sqlError");
exit();
}
}
else{
header("Location: /pluto_project/index.php?error=nouser");
exit();
}
}
}
}
else{
header("Location: /pluto_project/index.php");
exit();
}

您在sql语句中使用了一个未定义的变量。在绑定中引用$username,但在变量定义中定义$user_name

// wrong code
$user_name = $_POST['name'];
mysqli_stmt_bind_param($statement, "s", $username);
// fixed code
$user_name = $_POST['name'];
mysqli_stmt_bind_param($statement, "s", $user_name);

请尝试更改语句/变量以匹配您的声明。

最新更新