php - Php/mysqli 的问题 - 不再工作
问题描述
在这里迫切需要一些帮助。我最近回到了几年前开发的游戏,现在我有一些空闲时间。当我离开它时,所有的 Php/mysqli 代码都运行良好。完全没有问题。
然而,现在不是。例如,当我尝试登录游戏时,我得到的用户名和/或密码无效。现在,显然我使用的是已知的用户名/密码。
我发现它在 php5.1 上运行良好,但在任何更高版本上都没有。我想我必须重写代码以适应 php7,但我遇到了问题。
我已经用各种 php7 版本在各种在线检查器上测试了我的代码,每次我都会收到这个错误...
我已经与我的主机确认安装了 mysqli(cpanel),很明显这不是问题。
我还使用此代码段进行了检查...
if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
echo 'you dont have';
} else {
echo 'you have!';
}
我有!
我还检查了是否存在数据库连接。当我在 cpanel 中检查 php 错误日志时,我根本没有收到任何错误。
发生什么了?就好像没有从数据库中检索数据一样。我曾经能够通过将所有 POST 语法更改为 GET 来进行测试,因此我可以通过 url 手动登录,但现在也不起作用。
任何帮助都非常感谢,并提前感谢。
我的登录脚本:
<?php
$dbhost = 'localhost';
$dbuser = 'me';
$dbpass = 'xxxx';
$dbname = 'me_again';
$nameTable = 'table';
$string = '';
$conn = new mysqli($dbhost,$dbuser,$dbpass,$dbname);
if($conn->connect_error) {
$string = 'valid=8';
} else {
$username = '';
$userpass = '';
$loginRequest = '';
if (isset($_POST['username'])) {
$username = $_POST['username'];
}
if (isset($_POST['userpass'])) {
$userpass = $_POST['userpass'];
}
if (isset($_POST['loginRequest'])) {
$loginRequest = $_POST['loginRequest'];
}
if($loginRequest == "login") {
if ($s = mysqli_prepare($conn, "SELECT `usersalt` FROM `{$nameTable}` WHERE `username`=? LIMIT 1")) {
mysqli_stmt_bind_param($s, "s", $username);
mysqli_stmt_execute($s);
mysqli_stmt_store_result($s);
if (1 == mysqli_stmt_num_rows($s)) {
mysqli_stmt_bind_result($s, $usersalt);
// fetch only 1 result
mysqli_stmt_fetch($s);
if ($s2 = mysqli_prepare($conn, "SELECT `username`,`cat1`,`cat2`,`cat3`,`cat4`,`cat5`,`cat6`,`userscore`,`userplayed`,`correct` FROM `{$nameTable}` WHERE `username`=? AND `userpass`=? ")) {
$hashedpass = sha1($usersalt . $userpass);
mysqli_stmt_bind_param($s2, "ss", $username, $hashedpass);
mysqli_stmt_execute($s2);
mysqli_stmt_store_result($s2);
if (1 == mysqli_stmt_num_rows($s2)) {
mysqli_stmt_bind_result($s2, $res_name, $res_cat1, $res_cat2, $res_cat3, $res_cat4, $res_cat5, $res_cat6, $res_score, $res_played, $res_correct );
// fetch only 1 result
mysqli_stmt_fetch($s2);
header('Content-Type: text/xml');
echo "<?xml version='1.0'?>";
echo "<".$nameTable.">";
echo "<player>";
echo "<username>".$res_name."</username>";
echo "<cat1>".(int)$res_cat1."</cat1>";
echo "<cat2>".(int)$res_cat2."</cat2>";
echo "<cat3>".(int)$res_cat3."</cat3>";
echo "<cat4>".(int)$res_cat4."</cat4>";
echo "<cat5>".(int)$res_cat5."</cat5>";
echo "<cat6>".(int)$res_cat6."</cat6>";
echo "<userscore>".(int)$res_score."</userscore>";
echo "<userplayed>".(int)$res_played."</userplayed>";
echo "<correct>".(int)$res_correct."</correct>";
}
mysqli_stmt_close($s2);
} else {
$msg = ((is_object($conn)) ? mysqli_error($conn) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false));
$string = 'valid=0';
}
} else {
$msg = ((is_object($conn)) ? mysqli_error($conn) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false));
$string = 'valid=1';
}
mysqli_stmt_close($s);
} else {
$msg = ((is_object($conn)) ? mysqli_error($conn) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false));
$string = 'valid=2';
}
}
}
$conn->close();
echo $string;
?>
解决方案
推荐阅读
- ruby-on-rails - 使用 Webhook API Rails 6 收到 200 响应后呈现应用内消息
- node.js - 使用 express 访问节点中的请求参数
- c++ - 如何在销毁 boost::asio 实体时消除崩溃?
- python - Storing attribute twice with composition in python - is it memory inefficient?
- java - WebServiceIOException when testing a web service client using MockWebServiceServer
- python - accessing property in text response python 3
- python - Pandas group by and sum
- python - How do i go about post a request with python
- android - Accessing Android 11 Permission Labels
- android - Flutter 构建 apk:在模块 guava-26.0-android.jar 和 listenablefuture-1.0.jar 中发现了重复的类