1

只有在我的索引页面会话不会开始,但如果我转到另一个页面,会话将开始,或者如果我转到另一个页面而不是返回索引页面,会话将开始。我设置它的方式是使用 jQuery AJAX。如果它通过它应该创建一个会话而不是页面刷新而不是会话开始但它不会开始这就是问题所在。

索引页顶部:

ob_start;
error_reporting(0);
session_set_cookie_params(3600 * 24 * 7, '/', '.example.com');
session_start();

如果我摆脱error_reporting(0)这些错误

session_start() [function.session-start]:无法发送会话 cookie - 标头已经存在 session_start() [function.session-start]:无法发送会话缓存限制器

我没有在其他页面中看到这些错误

4

2 回答 2

1

我的猜测是,您的 PHP 顶部有内容,可以是空格、HTML 或<?php. 你不能有任何东西,<?php例如<div>......或<table>......等。

检查你是否这样做。这就是您收到“ headers already sent”错误消息的原因。

于 2013-08-08T06:07:53.193 回答
0

将会话功能置于其他一切之上。此外,ob_start是一个函数,必须调用。

error_reporting()在处理代码时应始终设置为-1。当它上传到服务器时,它应该设置为0. php.ini使用文件通常更容易处理它。

session_set_cookie_params(3600 * 24 * 7, '/', '.example.com');
session_start();
error_reporting(-1);
ob_start();
// Do something
// Call whateter ob_* function you need

我建议您始终阅读文档。那里有很多帮助。请务必阅读评论。

于 2013-08-08T05:44:04.677 回答