Так что я столкнулся с некой уникальной ситуацией, по крайней мере для меня. У меня есть функция 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()
, но опять-таки он не показывает никаких результатов на странице. Что я тут не так делаю?
Заранее спасибо за помощь.