2015-10-16 59 views
0

我已经尝试bascially一切,以得到这个工作。这里的chatLogin功能,我目前有:Codeigniter - Cometchat - 集成错误(不连接到ci_sessions)

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,它不会不管什么工作。

这就是错误日志中显示我:

[16-OCT-2015 1时14分46秒UTC] PHP注意:反序列化():错误在偏移0 40字节/应用/MAMP/htdocs/cometchat/integration.php on line 49 [16-Oct-2015 01:14:46 UTC] PHP警告:无法修改标题信息 - 已经发送的标题(输出开始于/ Applications/MAMP/htdocs/cometchat/integration.php:49)in /Applications/MAMP/htdocs/cometchat/cometchat_init.php on line 180

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

+0

'NULL'必须不加引号。那样它就是另一个字符串。考虑数据类型。 'NULL!=='NULL'' – Tpojka

+0

只需在登录时设置一个名为“uid”的cookie,然后从中取出。 –

+0

@AlecSmart,但是安全吗?如果只是这样放的话,他们可以欺骗uid吗? –

回答

1

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

如果您保存为用户标识为uid,只需使用$ _COOKIE ['uid']即可获得。

而关于你的getUserId有问题。如果你在会议第一寻找用户ID,然后请求,然后饼干,正确的方法是:

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; 
} 

问候,