Php 用户登录时,其他页面上的Codeigniter 3会话数据

Php 用户登录时,其他页面上的Codeigniter 3会话数据,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,这里有一个问题(很抱歉这么愚蠢),最近刚从Codeigniter开始 我有一个登录系统工作良好。我试图在使用index-header.php上的代码登录时转到主页: <?php if( !isset($_SESSION) ){ echo '<a href="login" class="popupbox">Login</a>'; } else { echo '<a href="dashboard/logout">Log Out</a

这里有一个问题(很抱歉这么愚蠢),最近刚从Codeigniter开始

我有一个登录系统工作良好。我试图在使用index-header.php上的代码登录时转到主页:

<?php 
if( !isset($_SESSION) ){
    echo '<a href="login" class="popupbox">Login</a>';
} else {
    echo '<a href="dashboard/logout">Log Out</a>';
}
?>
现在,如果我在仍然登录的情况下单击“从主页注销”,它将断开会话连接,但在刷新后不会将主页中的文本更改回“登录”。 换句话说,无论用户是否登录,它总是将文本显示为“注销”

dashboard.php(控制器)


创建一个单独的文件是不是一个好的做法?如果是,那么如何将会话链接到它?

使用
$this->session->sess_destroy()终止会话。检查URL。通过控制器终止会话,然后使用
重定向

顺便说一下,在
application/core
文件夹下创建一个名为
MY_Controller.php
的文件,并在上面创建会话内容。如果您想了解更多信息,只需在谷歌上搜索即可。

更改此选项:

 <?php 
 if( !isset($_SESSION) ){

为什么在你的index header.php中有这么多
?你在哪里设置会话?@kheshavsewundun,刚刚修复了phpsss。@rakesharma,谢谢你的回复。我想这就是我的问题所在。我应该创建一个专用的is_logged_in控制器连接到所有其他文件吗?通过一点智能代码缩进,它使代码更容易阅读,更重要的是更容易调试CI 3有了新的所有者,你建议使用一个旧的链接吗?谢谢,我已经有了它
$this->session->sess_destroy()我看不到它。你能在这里添加所有相关代码吗?嗨@DenizB.,刚刚添加的。但它在仪表板控制器上。这有什么不同吗?非常感谢@Dray,它成功了!!所以CI不理解本机php命令,它有自己的。@CodeIgniter如果理解了,您可以接受它作为答案,以便人们以后参考。:)@CodeIgniter否如果您尝试打印\r($\u会话),CI仍然存在会话;我想它会打印ci_生成,所以如果你需要检查会话,你需要明确。
public function logout() {
    $this->session->sess_destroy();
    $data['title'] = "Logged out";
    $data['logout_msg'] = "You have successfully logged out.";
    $this->load->view('headfoot/header-login',$data);
    $this->load->view('admin/login', $data);
    $this->load->view('headfoot/footer-login');
}
 <?php 
 if( !isset($_SESSION) ){
<?php if($this->session->userdata('username') == null ){