php - 调用 session_start() 的正确方法是什么

标签 php

我有两个共享主机。 我的问题与调用 session_start() 有关。 在我的本地主机和我的共享主机之一。 session 启动与用户通知配合得很好:无法调用 header 。然后我曾经写过下面的代码:

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

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

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

最佳答案

两个简单的事情:

<强>1。随时调用session_start无条件地。

<强>2。随时调用session_start在页面上输出任何内容之前。

所以你应该这样做:

<?php
session_start();

// and now anything else

特别要注意,您可以通过许多不同的方式违反指令 #2,例如通过:

  • 使用 echo 明确打印任何内容等
  • <?php 之前在您的 PHP 脚本中有任何字符标签
  • 包括执行上述操作的其他脚本

lots and lots of questions此处描述第 2 点及其解决方法。

关于php - 调用 session_start() 的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7455063/

相关文章:

php - 使用引号和换行符对 PHP 变量进行编码以传递给 Javascript 函数(然后反转编码)

php - 如何在 Ubuntu 16.04 中安装 php-curl

php - 为什么必须定期进行用户注册?

php - Drupal 7 - 不区分大小写的 LIKE 与 db_select

php - 在外部 URL 上注入(inject)时 jQuery AJAX 无法工作?

php - 无法在长文本字段中保存序列化数组

php - 如何从多个对象构建流/源?

php - PDO异常 “could not find driver”

php - 处理复杂的 mysql 搜索和衡量每个结果的匹配程度的最佳方法

php - 垂直对齐 div 但保持水平位置不变