Codeigniter - Cometchat - 集成错误(不连接到ci_sessions)
问题描述:
我已经尝试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小时,没有运气。非常感谢你们。
答
$ _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;
}
问候,
'NULL'必须不加引号。那样它就是另一个字符串。考虑数据类型。 'NULL!=='NULL'' – Tpojka
只需在登录时设置一个名为“uid”的cookie,然后从中取出。 –
@AlecSmart,但是安全吗?如果只是这样放的话,他们可以欺骗uid吗? –