你好我有一个奇怪的问题,我有一个登录页面index.php:我在哪个登录页面设置:
$_SESSION['user'] = $row['username'];
已成功登录的用户。 然后在登录页面上,我检查用户是否已登录,如果没有重定向到登录页面:
if(!$session->is_loggedin()) {
// session no set redirects to login page
$session->redirect('index.php');
}
在课程文件中:
public function is_loggedin() {
if(isset($_SESSION['user'])) {
return true;
}
}
所以我面临的问题只出现在本地主机上的互联网服务器上xampp一切正常。问题是我是否登录该站点。然后,如果注销并输入登录URL,我将被重定向到home.php,我正在创建一个print_r($ _ SESSION),它表明会话中的会话仍然存在。但是当我点击菜单上的任何链接时,我会在没有会话的情况下发回登录页面。
并且必须登录。
index.php页面上的代码,用于检查会话是否存在:
if($login->is_loggedin()!="") {
$login->redirect('home.php');
}
因此,在这种情况下,每次用户访问该页面时,它都会显示为已登录但不是,然后他可以看到应该受到保护的home.php。一旦用户点击任何菜单链接,它就会被重定向到登录页面。
我想这可能是一些php配置,因为在localhost上XAMPP正在运行。知道我要去哪儿吗?
编辑:我在索引页面上进行了以下检查:
if(isset($_SESSION['user']) && !empty($_SESSION['user'])) {
echo 'Set and not empty, and no undefined index error!';
}
检查是否有会话,因此每次打开URL时都会显示TRUE。当我打开/home.php时,它会打开主页,点击重定向到主页的任何链接,它不会回显任何内容。感觉就像服务器每次打开时都会缓存带有会话的第一页。或者浏览器自动将此信息发送到服务器。
或者有时会遇到的另一种情况。我正在打开网站并记录它。点击任何按钮我在第二次登录后重定向到登录页面尝试一切正常。
发生的另一件事是,当建立假会话时,所有Bootstrap Glyphicon都显示正方形而不是实际图标
我看到php info session.use_only_cookies设置为ON可能这是问题所在。
答案 0 :(得分:2)
对于初学者,您的登录检查,
if($login->is_loggedin()!="")
{
$login->redirect('home.php');
}
为什么这不是if($login->is_loggedin()!== true)
这会在if检查上取消任何奇怪的回报,
目前,如果它看到任何不是"",它将不会重定向到主页,即。如果你的函数返回false。
这是我最突出的主要因素,(我可能会离开这里)