我将我的网站从mysql转换为mysqli,我遇到了一个问题。我的网站是基于会员的,我有一个包含文件,用于检查用户登录状态,连接到数据库,并启动会话等。当我将该文件包含到我的索引页面时,我收到服务器错误:
HTTP错误500(内部服务器错误):出现意外情况 在服务器尝试完成请求时遇到。
奇怪的是,如果我只包含我的数据库连接文件而不是check_login_user.php
文件页面正常工作,我检索数据的所有查询都会成功运行,所以我认为错误必须在check_login_user.php
中但我找不到它。也许额外的一双眼睛和更熟悉mysqli的人可以为我揭示这一点?这是check_login_user.php
:
<?php
session_start();
ini_set("display_errors", 0);
// Files that inculde this file at the very top should NOT require connection to database or session_start().
include_once('db_connect.php');
// Initialize some vars
$user_ok = false;
$log_id = "";
$log_username = "";
$log_password = "";
// User Full Evaluation QUERY function
function evalLoggedUser($lid,$lp){
$result = $mysqli->query("SELECT id FROM users WHERE plusid='$lid' AND pass='$lp' LIMIT 1");
$numrows = $result->num_rows;
if($numrows > 0){
return true;
} else {
return false;
}
}
if(isset($_SESSION["plusid"]) && isset($_SESSION["name"]) && isset($_SESSION["pass"])) {
$log_id = preg_replace('#[^0-9]#', '', $_SESSION['plusid']);
$log_username = preg_replace('#[^a-z 0-9]#i', '', $_SESSION['name']);
$log_password = preg_replace('#[^0-9]#', '', $_SESSION['pass']);
$user_ok = evalLoggedUser($log_id,$log_password);
} else if(isset($_COOKIE["ci"]) && isset($_COOKIE["cn"]) && isset($_COOKIE["cp"])){
$log_id = preg_replace('#[^0-9]#', '', base64_decode($_COOKIE['ci']));
$log_username = preg_replace('#[^a-z 0-9]#i', '', base64_decode($_COOKIE['cn']));
$log_password = preg_replace('#[^0-9]#', '', base64_decode($_COOKIE['cp']));
$_SESSION['plusid'] = $log_id;
$_SESSION['name'] = $log_username;
$_SESSION['pass'] = $log_password;
// Check the user out
$user_ok = evalLoggedUser($log_id,$log_password);
if($user_ok == true){
$update = "UPDATE users SET lastlogin=now() WHERE plusid='$log_id' LIMIT 1";
$mysqli->query($update);
}
}
?>