我有一个带有以下功能的functions.php文件;
function isLoggedIn(){
session_start();
if (!$_SESSION['Username']){
header("Location: login");
echo '<meta http-equiv="refresh" content="0; url=login" />';
exit;
}
}
会话应用于以下功能;
function checkLogin($mysqli,$Username,$Pass){
$Password = sha1($Pass);
$Prep1 = "SELECT * FROM infWebAccounts WHERE Username='$Username' AND Password='$Password'";
$Prep2 = "SELECT * FROM infWebAccounts WHERE Username='$Username'";
$DataArray = $mysqli->query($Prep1);
$UserArray = $mysqli->query($Prep2);
$Maintenance = getWebSettings($mysqli,'Maintenance');
if (mysqli_num_rows($DataArray) > 0){
$DataTable = mysqli_fetch_array($DataArray);
if ($Maintenance == 'Y' && $DataTable['Tier'] != 9 || $DataTable['Tier'] != 10){
return '5';
}
if ($DataTable['Tier'] == 0) {
return '4';
}
session_start();
$_SESSION['Usernamee'] = $DataTable['Username'];
$_SESSION['Tier'] = $DataTable['Tier'];
return '3';
} elseif (mysqli_num_rows($UserArray) > 0) {
return '1';
} else{
return '2';
}
}
在每个页面上,我都包含这个文件并像这样运行isLoggedIn();
<?php
session_start();
include 'API/infMain.php';
IsLoggedIn();
?>
即使登录后,我仍然会被重定向回到登录页面。我回复了会话用户名,它以我的用户名的形式返回,但我仍然被重定向....
答案 0 :(得分:0)
也许你想要
function isLoggedIn(){
session_start();
if (!isset($_SESSION['Username'])){
header("Location: login");
echo '<meta http-equiv="refresh" content="0; url=login" />';
exit;
}
}
当前代码检查它是否已定义但未设置。
答案 1 :(得分:0)
如果用户已登录,则您正在重定向,不应该
if (!$_SESSION['Username']){
另外,包括session_start();在调用函数之前,函数内部可能会引发警告。
答案 2 :(得分:0)
您设置了拼写错误
$_SESSION['Usernamee'] = $DataTable['Username'];
所以这个检查永远不会检查出来:))
if (!$_SESSION['Username']){
答案 3 :(得分:0)
发现问题,我将会话设置为&#39;用户名&#39;并检查&#39;用户名&#39;