繁体   English   中英

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;

}

该用户标识在cookie中另存为uid ,无论如何都无效。

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

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

非常感谢您的帮助。 我已经搜索了3个多小时,没有运气,这确切的问题。 非常感谢你们。

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

如果将用户标识另存为uid,只需使用$ _COOKIE ['uid']即可获取。

并且关于您的getUserId有问题。 如果您首先在会话中查找用户标识,然后是请求,然后是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;
}

问候,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM