所以至少在我看来,我遇到了一种独特的情况。我有一个PHP函数,用于检查用户是否已登录。它会更新一些数据库信息,然后基于该用户是有效的登录用户,返回true或false。我遇到的问题是,当这段代码运行时,所有其他尝试运行的PHP函数都根本无法运行。我没有任何PHP错误或其他任何内容。我很困惑。
如果我能得到一些帮助解决这个问题,将不胜感激。
因此登录检查功能如下:
function loggedIn() {
global $conn;
if(isset($_COOKIE['SS_ID'])) {
$rows = numRows("SELECT * FROM login_info WHERE login_info = '".mysqli_real_escape_string($conn, $_COOKIE['SS_ID'])."'");
if($rows >= 1) {
$hash = substr(str_shuffle(str_repeat("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-", 157)), 0, 157);
$query = query("UPDATE login_info SET login_info = '$hash' WHERE login_info = '".mysqli_real_escape_string($conn,$_COOKIE['SS_ID'])."'");
setcookie('SS_ID',$hash, $cookieTime, '/', 'domain.com');
return true;
}
else {
setcookie('SS_ID', '', false, '/', 'domain.com');
}
}
return false;
}
再次,该代码段完全没有PHP错误,并且它按预期运行。尽管当我在其后运行另一个函数时,却什么也没得到。所以这是我运行这些功能的页面。
<?php
// ini_set('display_startup_errors', 1);
// ini_set('display_errors', 1);
// error_reporting(-1);
require './server/lib.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" type="text/css" href="https://example.com/css/global.css" />
<link href="https://fonts.googleapis.com/css?family=Fredoka+One|Muli|Days+One|Noto+Sans+KR&display=swap" rel="stylesheet">
<script type="text/javascript" src="https://example.com/js/jquery.js"></script>
<script type="text/javascript" src="https://example.com/js/global.js"></script>
<script type="text/javascript" src="https://example.com/js/main.js"></script>
<title></title>
</head>
<body>
<div id="wrapper">
<div id="header">
<div id="headerTop">
<span class="logo">
<a href="https://example.com"><img src="https://example.com/images/example.png" /></a>
</span>
</div>
<div id="navLinks">
<ul>
<li><a href="https://example.com">Home</a></li>
<li><a href="https://example.com/vocabulary">Vocabulary Words</a></li>
<li><a href="https://example.com/quiz">Take a Quiz</a></li>
</ul>
</div>
<div id="navLinksRight">
<?php if(loggedIn() == false) { ?>
<ul>
<li class="loginBtn"><a href="https://example.com/login">Log In</a></li>
<li><a href="https://example.com/signup">Sign Up</a></li>
</ul>
<?php } else { ?>
<ul>
<li><a href="https://example.com/index?logout=true">Log out</a></li>
</ul>
<?php } ?>
</div>
</div>
<div id="container">
<div id="leftColumn">
Left column here
</div>
<div id="rightColumn">
right column here
</div>
</div>
</div>
<?php if( user('permission') >= 3) { ?>
<script type="text/javascript" src="https://example.com/js/cpanel.js"></script>
<?php } ?>
</body>
</html>
同样,该代码在if loggedIn()
运行的地方按预期工作,但是当我尝试运行user('permission')
时,它的运行就好像没有运行。尽管如果我将user('permission')
移到loggedIn()
之前,一切都会很好。我试图在loggedIn()
函数之后运行一个简单的回显,但是它再次在页面上不显示任何输出。我在这里做什么错了?
预先感谢您的帮助。