[英]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.