尝试发起会话时,我收到以下警告:
Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent
(output started at /www/zxq.net/l/i/b/librarymanagement/htdocs/public/admin/index.php:2)
in /www/zxq.net/l/i/b/librarymanagement/htdocs/includes/session.php on line 9
我确保所有空格都清晰,session_start()
应该是第一个被调用的东西。我认为在调用session_start()
之前还没有发送任何其他内容。
这是我的代码:
class Session {
private $logged_in=false;
public $user_id;
public $message;
function __construct() {
session_start();
$this->check_message();
$this->check_login();
if($this->logged_in) {
} else {
}
}
public function is_logged_in() {
return $this->logged_in;
}
public function login($user) {
if($user) {
$this->user_id = $_SESSION['user_id'] = $user;
$this->logged_in = true;
}
}
public function logout() {
unset($_SESSION['user_id']);
unset($this->user_id);
$this->logged_in = false;
}
public function message($msg="") {
if(!empty($msg)) {
$_SESSION['message'] = $msg;
} else {
return $this->message;
}
}
private function check_login() {
if(isset($_SESSION['user_id'])) {
$this->user_id = $_SESSION['user_id'];
$this->logged_in = true;
} else {
unset($this->user_id);
$this->logged_in = false;
}
}
private function check_message() {
if(isset($_SESSION['message'])) {
$this->message = $_SESSION['message'];
unset($_SESSION['message']);
} else {
$this->message = "";
}
}
}
以下是它的使用方法:
$session = new Session();
$message = $session->message();
可能是什么问题?
答案 0 :(得分:2)
您正在尝试在响应主体之后或在正文的中间部分发送标头,但在HTTP中不允许...
原因是你启动了代码
\s
<?php
你的空间是你回应的身体部分...... 当你用
完成代码时?>
\s
此空间也是输出....
答案 1 :(得分:1)
在向客户发送任何数据之前,您需要致电session_start()
答案 2 :(得分:0)
在调用session_start()之前输出。毫无疑问。检查之前是否没有错误消息或警告,在文件开头的任何空格都要小心。
答案 3 :(得分:0)
这是您的错误消息:
(输出于/www/zxq.net/l/i/b/librarymanagement/htdocs/public/admin/index.php:2开始)
请阅读。
查看上面提到的文件和行号。有你的问题。