【发布时间】:2014-08-25 20:11:08
【问题描述】:
当我尝试注销我创建的会话时,我不断收到修改标头错误。这是我的代码
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');
}
}
?>
我基本上只是将用户登录到一个视图中,然后在该页面上有一个注销链接,当他们单击它时,他们会从会话中注销,然后运行注销功能。有任何想法吗?
【问题讨论】:
-
您确实在发送标头之前打印了一些内容(调用注销功能)。确保在任何
echo语句之前调用logout()。
标签: php codeigniter session