如何解决函数没有被回调给登录用户
我正在尝试创建一个登录系统,但它似乎没有用“准备好的语句”回调以前的函数,并且无法继续登录。 我遇到的问题是登录页面返回错误消息,指出“用户名不存在”(uid 存在函数似乎无法正常工作,因为如果为真,它只返回“数组”如果为假,则不会回显任何内容)。但是,用户在数据库上有一个帐户。我尝试同时使用用户名和电子邮件进行登录(结果相同)。
以下是我在 functions.PHP 文件中使用的两个函数:
<?PHP
function uidExists($conn,$username,$email)
{
$sql = "SELECT * FROM users WHERE username = ? OR user_email = ?;";
$stmt = MysqLi_stmt_init($conn);
if (!MysqLi_stmt_prepare($stmt,$sql)) {
header("location: ../../pages/register.PHP?error=stmtfaild");
exit();
}
MysqLi_stmt_bind_param($stmt,"ss",$email);
MysqLi_stmt_execute($stmt);
$resultData = MysqLi_stmt_get_result($stmt);
if ($row = MysqLi_fetch_assoc($resultData)) {
return $row;
} else {
$result = false;
return $result;
}
MysqLi_stmt_close($stmt);
}
function loginUser($conn,$pwd)
{
$userNameExists = uidExists($conn,$username);
if ($userNameExists === false) {
header("location: ../../pages/login.PHP?login=Usernamenotexists");
exit();
}
$pwdHashed = $userNameExists["user_password"];
$checkPwd = password_verify($pwd,$pwdHashed);
if ($checkPwd === false) {
header("location: ../../pages/login.PHP?login=incorrectpassword");
exit();
} elseif ($checkPwd === true) {
session_start();
$_SESSION["userid"] = $userNameExists["id"];
$_SESSION["username"] = $userNameExists["username"];
header("location: ../../pages/index.PHP");
exit();
}
}
<?PHP
if (isset($_POST['login-btn'])) {
$username = $_POST['username']; //protect aganst hacker
$pwd = $_POST['password']; //protect aganst hacker using MysqLi long way
require_once "connection.PHP";
require_once "functions.PHP";
if (emptyFieldLogin($username,$pwd) !== false) {
header("location: ../../pages/login.PHP?login=empty");
exit();
}
loginUser($conn,$pwd);
} else {
header("location: ../../pages/login.PHP");
exit();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。