【问题标题】:What is proper way to calling session_start()调用 session_start() 的正确方法是什么
【发布时间】:2011-11-19 06:47:09
【问题描述】:

我有两个共享主机。 我的问题是通过调用 session_start() 来解决的。 在我的本地主机和我的共享主机之一。会话开始与用户注意到 : 无法调用标头配合得很好。然后我用来写下面的代码:

<?php
if(! isset($_SESSION)){
 session_start()
}
?>

但在另一个主机上,它仍然会回显 “注意:无法启动 session()...”的消息 还有我的问题是第一次访问时会话没有开始。当我再次刷新我的浏览器窗口然后开始会话。客户端和服务器端之间的关系是什么。我的 session_start() 又出了什么问题?请帮帮我。

谁能告诉我调用永远不会失败的 session_start() 的正确方法是什么。我应该在哪里打电话。页面顶部或配置文件中的任何位置。一个小例子肯定会对我有所帮助。

【问题讨论】:

  • 错误的完整输出是什么?看来您的脚本已经在 session_start() 之前发送数据

标签: php


【解决方案1】:

两个简单的事情:

1.始终无条件致电session_start

2。在页面上输出任何内容之前,请始终调用session_start

所以你应该这样做:

<?php
session_start();

// and now anything else

请特别注意,您可能会以多种不同的方式违反指令 #2,例如作者:

  • 使用echo 等显式打印任何内容。
  • 在您的 PHP 脚本中 &lt;?php 标记之前有任何字符
  • 包括执行上述操作的其他脚本

在 SO 上有 lots and lots of questions 描述了第 2 点以及如何解决它。

【讨论】:

  • 如果您不打算更改会话变量并且您使用 apache 的会话管理系统是基于文件的,请始终调用 session_write_close();
猜你喜欢
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
相关资源
最近更新 更多