我不得不把我太复杂的项目,大约100个文件,分成几个小文件。一个问题是,它仍然很难看到逻辑,得到了很好的会话错误堆:
`Cannot send session cookie - headers already sent by`如何管理会话命令,如" session -start“和"ob-end-flush"?您是否将它们添加到index.php的开头和结尾,或者有一些集中的文件来管理它们?
请每个答案有一条经验法则。
发布于 2009-09-06 19:51:20
这可能不是你想要的,但只是一个小小的提示:
我总是像这样打开<?php标记:
<?php
class foo {
//...
}
//EOF这样,您就不能在?>之后有任何换行符(会话开始前的意外输出),这将非常难以跟踪。
Zend框架也使用了这种约定。
发布于 2009-09-06 19:42:59
您需要在执行任何输出(包括但不限于发送标头、cookies)的所有代码之前使用session_start(),因此在页面加载期间执行的第一个文件的顶部是一个安全的地方。
发布于 2009-09-06 19:49:51
您可以使用一个实现为singleton的custom session handler,它在最初创建时调用session_start。然后在该会话对象上执行任何进一步的会话操作。
输出控制问题可以通过在索引脚本的开头调用ob_start来解决。不需要调用ob_end_flush,因为输出缓冲区会在脚本执行结束时自动刷新。
https://stackoverflow.com/questions/1386503
复制相似问题