首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:会话的thumb规则

PHP:会话的thumb规则
EN

Stack Overflow用户
提问于 2009-09-06 19:36:19
回答 8查看 531关注 0票数 0

我不得不把我太复杂的项目,大约100个文件,分成几个小文件。一个问题是,它仍然很难看到逻辑,得到了很好的会话错误堆:

代码语言:javascript
复制
`Cannot send session cookie - headers already sent by`

如何管理会话命令,如" session -start“和"ob-end-flush"?您是否将它们添加到index.php的开头和结尾,或者有一些集中的文件来管理它们?

请每个答案有一条经验法则。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-09-06 19:51:20

这可能不是你想要的,但只是一个小小的提示:

我总是像这样打开<?php标记:

代码语言:javascript
复制
<?php
class foo {
    //...
}

//EOF

这样,您就不能在?>之后有任何换行符(会话开始前的意外输出),这将非常难以跟踪。

Zend框架也使用了这种约定。

票数 3
EN

Stack Overflow用户

发布于 2009-09-06 19:42:59

您需要在执行任何输出(包括但不限于发送标头、cookies)的所有代码之前使用session_start(),因此在页面加载期间执行的第一个文件的顶部是一个安全的地方。

票数 2
EN

Stack Overflow用户

发布于 2009-09-06 19:49:51

您可以使用一个实现为singletoncustom session handler,它在最初创建时调用session_start。然后在该会话对象上执行任何进一步的会话操作。

输出控制问题可以通过在索引脚本的开头调用ob_start来解决。不需要调用ob_end_flush,因为输出缓冲区会在脚本执行结束时自动刷新。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1386503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档