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

时间:2015-10-16 01:16:26

标签: php codeigniter chat

我已经尝试了一切以实现这一目标。这是我目前的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;

}

用户ID在Cookie中保存为uid,无论如何都无法正常工作。

这是错误日志显示的内容:

  

[16-Oct-2015 01:14:46 UTC] PHP注意:unserialize():第49行/Applications/MAMP/htdocs/cometchat/integration.php中偏移量为0的40字节错误   [16-Oct-2015 01:14:46 UTC] PHP警告:无法修改标头信息 - 已在/ Applications / MAMP /中发送的标头(在/Applications/MAMP/htdocs/cometchat/integration.php:49处开始输出)第180行的htdocs / cometchat / cometchat_init.php

非常感谢任何帮助。我一直在谷歌搜索这个确切的问题超过3个小时,没有运气。非常感谢你们。

1 个答案:

答案 0 :(得分:1)

$ _COOKIE ['ci_session']只是指向网络服务器中会话ID的指针。您无法通过反序列化来获取任何信息(请注意,您从错误日志中获得的第一个PHP通知是因为反序列化了无效的格式值)。

如果你以uid的形式保存为userid,只需使用$ _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;
}

此致