当我试图注销我创建的会话时,我不断收到修改头错误。。这是我的代码
function logout()
{
$this->session->unset_userdata('logged_in');
session_destroy();
redirect('home', 'refresh');
}
以下是错误:
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /Users/Rob/stage/dashboard.php:36)
Filename: libraries/Session.php
Line Number: 688
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /Users/Rob/stage/dashboard.php:36)
Filename: helpers/url_helper.php
Line Number: 540
有什么想法会导致这种情况吗?
这是我的整个控制器的代码。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
session_start(); //we need to call PHP's session object to access it through CI
class dashboard extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
if($this->session->userdata('logged_in'))
{
$session_data = $this->session->userdata('logged_in');
$data['username'] = $session_data['username'];
$this->load->view('dashboard', $data);
}
else
{
//If no session, redirect to login page
redirect('login', 'refresh');
}
}
function logout()
{
$this->session->unset_userdata('logged_in');
session_destroy();
redirect('home', 'refresh');
}
}
?>
我基本上只是把用户登录到一个视图中,然后在该页面上有一个注销链接,当他们点击它时,他们就会从会话中注销,然后运行注销功能。有什么想法吗?
这个答案很可能会解决您的问题。
然而,由于我无法发表评论,我想指出的是,如果你要破坏会话,你不需要先取消设置它的任何部分。因此可以更改以下
$this->session->unset_userdata('logged_in');
session_destroy();
到此:
$this->session->sess_destroy();
也要添加,请使用
$this->session->sess_destroy();
而不是CCD_ 1。