我的代码中我使用的session_start()无效。我正在使用php。
情景如下:
在php中,我们需要在每个文件中放置session_start()如果我们想要访问会话。所以我创建了一个公共文件,它被包含在每个php页面上。在常见文件中,第一行是session_start()&我把这个文件作为第一行包含在每个其他php文件中。
所以当我运行代码会话时没有开始。它被重定向到同一页面,因为会话没有设置&它没有在会话中获取值,因为它没有被创建。
我做了什么,为了测试我创建了另一个测试项目。在那个采取两个文件index.php& index1.php。在index.php&中开始会话在index1.php中使用它。所以它运行正常。因此,现在我的代码正在使用测试项目的会话文件。
因此,每当我需要运行我的代码时,我首先运行测试项目(以便它将由它创建会话)&然后运行我的代码。像这样它的工作正常。
但仅凭它没有开始会议和&其他会话相关的检查失败&再次重定向到同一页面&试。
为什么会这样?它背后的原因是什么?任何人都面临同样的问题吗?
如果是,那么您的帮助将不胜感激。
答案 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']
。