如果文件顶部没有会话重新生成,PHP代码将无法运行

如果文件顶部没有会话重新生成,PHP代码将无法运行,php,session,Php,Session,基本上,如果文件顶部没有会话重新生成检查,我的脚本都无法工作,这非常奇怪,因为我以前从未遇到过这个问题,我不知道为什么它会迫使我运行此代码。下面是我的注销,下面是我必须在每个涉及会话的文件顶部放置的内容,以使其正常工作。有什么问题吗 注销: require_once("../Core/Core.php"); if(!isset($_SESSION['LoggedIn'])) Core::ThrowError(13,"",1); session_destroy(); header("L

基本上,如果文件顶部没有会话重新生成检查,我的脚本都无法工作,这非常奇怪,因为我以前从未遇到过这个问题,我不知道为什么它会迫使我运行此代码。下面是我的注销,下面是我必须在每个涉及会话的文件顶部放置的内容,以使其正常工作。有什么问题吗

注销:
require_once("../Core/Core.php");

if(!isset($_SESSION['LoggedIn']))
    Core::ThrowError(13,"",1);

session_destroy();
header("Location: " . Core::$url);
使其工作所必需的:(另外,我将把它放在用户查看的每个页面上(因此没有类似于登录脚本页面的内容))


更新1:

在我向变量添加数据的上面添加会话_start()后,我现在可以将数据放入会话中(虽然会话已经启动,因为它在您查看登录页面之前就启动了),但是当我调用会话_destroy()时,它返回false,就好像会话不存在一样,但我将会话_start()放入上面的会话是_destroy(),它工作正常!这真是愚蠢,不管它是什么。。。请帮忙

更新2:


似乎只有在尝试访问会话之前放入session_start()才能访问会话数据,即使会话已经声明。

好的,我成功地修复了它,我不知道“要使用基于cookie的会话,必须先调用session_start(),然后才能将任何内容输出到浏览器。”所以要修复它,我放入session_start()在内核中,这是所有东西都需要的,所以在尝试访问会话之前,所有东西都会调用它。

您最近是否更改了
会话\u auto\u start
或相关设置?没有,我没有更改任何设置。我想,编写更多代码以进行测试。可能在那里使用
session\u id
。检查返回值,是否有返回错误的内容?我看不出有什么明显的错误,PHP会话也不是“有缺陷的”。需要更多地调试代码。我有很多不同的函数,如果脚本顶部没有这个,它们都不能工作:/刚添加了一个更新,可能会有所帮助
<?
    session_start();
    if(!isset($_SESSION['started']))
    {
        session_regenerate_id();
        $_SESSION['started'] = true;
    }
?>