首页 > 解决方案 > InterAkt KT 函数的 PHP 会话 ID 问题

问题描述

我正在研究一个在 2000 年代初期制作的旧网站。它有很多错误,但大部分是可以修复的。我收到一条错误消息,“您的会话定义不正确,无法启动。请检查您的 php.ini 配置。” . 我能够推断这是来自名为 KT_functions.inc.php 的 php 页面的错误,我相信该页面是由 InterAkt Online 在他们的“包含”包中提供的。

我在这个函数的那个​​页面上发现了同样的错误:

function KT_session_start() {
    if (!session_id()) {
        @session_start();
        if (!session_id()) {
            die('Your session is incorrectly defined and cannot be started. Check your php.ini configuration.');
        }
    }
    
    $siteroot = md5(KT_getSiteRoot());
    if ( isset($_SESSION[$siteroot]) && is_array($_SESSION[$siteroot]) ) {
        foreach ($_SESSION[$siteroot] as $key => $value) {
            $_SESSION[$key] = $value;
        }
    }
}

在尝试解决错误一段时间后,我(天真地)尝试将其注释掉。现在所有的网页都返回错误 500。这是网站的核心功能,所以几乎每个页面都使用了它。

我意识到这是一个更大的集合中的一个函数,这可能没有足够的信息。我已联系公司寻求帮助,但无济于事。我只是在寻找一些方向。

编辑:这里是 php.ini 配置

display_errors = On
max_execution_time = 30
max_input_time = 60
max_input_vars = 1000
memory_limit = 32M
post_max_size = 8M
session.gc_maxlifetime = 1440
session.save_path = "/var/cpanel/php/sessions/ea-php72"
upload_max_filesize = 2M
zlib.output_compression = Off

编辑 2:我通过启用 display_errors 并找到错误所在来解决问题。我之前也更新了 PHP 版本,并且我相信一段不同的代码无法正常工作,因为它已被弃用。

标签: php

解决方案


推荐阅读