PHP Session没有开始但使用其他会话

时间:2016-08-08 09:31:49

标签: php session

我的代码中我使用的session_start()无效。我正在使用php。

情景如下:

在php中,我们需要在每个文件中放置session_start()如果我们想要访问会话。所以我创建了一个公共文件,它被包含在每个php页面上。在常见文件中,第一行是session_start()&我把这个文件作为第一行包含在每个其他php文件中。

所以当我运行代码会话时没有开始。它被重定向到同一页面,因为会话没有设置&它没有在会话中获取值,因为它没有被创建。

我做了什么,为了测试我创建了另一个测试项目。在那个采取两个文件index.php& index1.php。在index.php&中开始会话在index1.php中使用它。所以它运行正常。因此,现在我的代码正在使用测试项目的会话文件。

因此,每当我需要运行我的代码时,我首先运行测试项目(以便它将由它创建会话)&然后运行我的代码。像这样它的工作正常。

但仅凭它没有开始会议和&其他会话相关的检查失败&再次重定向到同一页面&试。

为什么会这样?它背后的原因是什么?任何人都面临同样的问题吗?

如果是,那么您的帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

在打开或关闭标记之前或之后,检查所有PHP文件是否存在杂散空格。 使用session_start()之前必须没有输出。 Session_start()必须位于顶部(或至少在发送任何输出之前)或者会话不会存储数据。 (并输出错误)。

所以,请同时使用error_reporting(E_ALL)&& ini_set(' display_errors',1);

[编辑] 你也可以尝试将ob_start()放在绝对的top / first文件中,以及你的会话开始的地方,var_dump(ob_get_clean()); exit; 如果这不是NULL /'',那么您已经找到了问题。

答案 1 :(得分:0)

首先,确保在启动页面后立即放置session_start(),它应该位于文档中第一个<?php的下方。它应该只在每个页面中出现一次,您将需要一个会话cookie。

另外,确保您已经创建了会话变量并在调用它们之前定义了它们$_SESSION['id']