您好,我的网站上的以下代码有问题:
<?php
session_start();
include '../databaseConnector.php';
$uid = mysqli_real_escape_string($connector, $_POST['uid']);
$pwd = mysqli_real_escape_string($connector, $_POST['pwd']);
$stmt = $connector->prepare("SELECT * FROM nutzer WHERE uid=?");
$stmt->bind_param("s", $username);
$username = $uid;
$stmt->execute();
$result = $stmt->get_result();
$row = mysqli_fetch_assoc($result);
$hash_pw = $row['pwd'];
$dehash = password_verify($pwd, $hash_pw);
if($dehash == 0)
{
header("Location: ../loginscreen.php?error=pwwrong");
exit();
}else{
$stmt2 = $connector->prepare("SELECT * FROM nutzer WHERE uid=? AND pwd=?");
$stmt2->bind_param("ss", $username2, $password2);
$username2 = $uid;
$password2 = $hash_pw;
$stmt2->execute();
$result = $stmt2->get_result();
$stmt->close();
if(!$row =$result->fetch_assoc())
{
echo "Your username or password is incorrect!";
} else{
$_SESSION['id'] = $row['id'];
$_SESSION['uid'] = $row['uid'];
$_SESSION['email'] = $row['email'];
$_SESSION['first'] = $row['first'];
$_SESSION['last'] = $row['last'];
}
header("Location: ../loginscreen.php"); // go to page after signing in
}
准备好的语句在我的本地主机上的 XAMPP 上完美运行,但是当我将它们上传到我的网络服务器上时,登录后没有任何反应。它只是一个空白屏幕。如果这很重要的话,我的网络服务器正在 PHP 5.6 上运行。
最佳答案
仅供将来看到此内容的任何人使用。我发现我的主机不支持 get_result() 函数所需的 MYSQLnd。我只是用 fetch() 和 bind_result() 写了不同的代码。网上有很多解决方案示例。
关于PHP 准备好的语句在网络服务器上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41350453/