Codeigniter - Cometchat -集成错误(未连接到ci_sessions)


Codeigniter - Cometchat - Integration error (Not connecting to ci_sessions)

我基本上已经尝试了所有方法来让它工作。这是我目前拥有的chatLogin函数:

function getUserID() {
$userid = 0;
if (!empty($_SESSION['basedata']) && $_SESSION['basedata'] != 'null') {
    $_REQUEST['basedata'] = $_SESSION['basedata'];
}
if (!empty($_REQUEST['basedata'])) {
    $userid = $_REQUEST['basedata'];
}
if (!empty($_COOKIE['ci_session'])) {
    $uid = unserialize($_COOKIE['ci_session']);
    if(!empty($uid['uid'])){
        $userid = $uid['uid'];
    }
}
return $userid;

}

userid在cookie中保存为uid,无论如何它都不起作用

错误日志显示如下:

[16-10-2015 01:14:46 UTC] PHP通知:unserialize(): Error at offset 0 of 40 bytes in/Applications/MAMP/htdocs/cometchat/integration.php on line 49[16-Oct-2015 01:14:46 UTC] PHP警告:无法修改报头信息-报头已经由(output started at/Applications/MAMP/htdocs/cometchat/integrated . PHP:49)在/Applications/MAMP/htdocs/cometchat/cometchat_init.php发送到180行

非常感谢任何帮助。我已经在谷歌上搜索了这个问题超过3个小时,没有运气。非常感谢大家。

$_COOKIE['ci_session']只是一个指向你的web服务器会话id的指针。你不能从反序列化中获得任何信息(注意,你从错误日志中得到的第一个PHP通知是因为反序列化了一个无效的格式值)。

如果您将userid保存为uid,只需使用$_COOKIE['uid']来获取它。

关于你的getUserId有问题。如果您首先在会话中寻找userid,然后是请求,然后是cookie,正确的方法是:

function getUserID()
{
    if (isset($_SESSION['basedata'])) return $_SESSION['basedata'];
    if (isset($_REQUEST['basedata'])) return $_REQUEST['basedata'];
    if (isset($_COOKIE['uid'])) return $_COOKIE['uid'];
    return 0;
}

认为,