2010-10-07 54 views
2

我有以下代码:PHP会话超过2页

if (!isset($_SESSION)) { 
ob_start(); 
} 
$_SESSION['views'] = 1; // store session data 
echo $_SESSION['views']; //retrieve data 

我试图打破它分为两部分是这样的:

//Page 1 
if (!isset($_SESSION)) { 
ob_start(); 
} 
$_SESSION['views'] = 1; // store session data 

//page 2 
echo $_SESSION['views']; //retrieve data 

它回声没什么,我做错了什么?

回答

2

如浓汤提到的,你需要给你打电话要使用的会话的每个页面上的session_start()..

您也提到你得到的错误: 警告:在session_start():不能发送会话缓存限制器 - 已经发送的头文件

这是由于在调用session_start()之前在页面上输出的数据,因此必须在将任何内容回显到浏览器之前包含此内容。

+0

这帮助我修复它,只需要将会话开始在页面顶部 – James 2010-10-07 11:41:01

1

请务必在您希望会话可用的每个页面上拨打session_startob_start不是会话处理程序,而是输出缓冲区处理程序。

+0

使用session_start给我这个警告:警告:session_start():无法发送会话缓存限制器 - 已经发送的头文件 – James 2010-10-07 11:15:51

+0

@James:通过检查上述位置的代码来追踪此错误的原因。或者在输出其他东西之前调用'ob_start'。 – Gumbo 2010-10-07 11:18:29

+0

您是否在ob_start之前放置了session_start? – malonso 2010-10-07 11:19:03

1

session_start()在任何输出之前的2个文件中。