我尽了一切努力才能让这件事奏效。下面是我目前拥有的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中,用户is被保存为uid,无论发生什么,它都不能工作。
这就是错误日志向我展示的内容:
16-2015年10月01:14:46 UTC PHP注意:取消序列化():/Applications/MAMP/htdocs/cometchat/integration.php第49行40字节的偏移量0-2015年10月-2015年01:14:46 UTC PHP警告:不能修改已由/Applications/MAMP/htdocs/cometchat/cometchat_init.php发送的标题信息(输出从/Applications/MAMP/htdocs/cometchat/cometchat_init.php第180行开始)
任何帮助都是非常感谢的。我已经搜索了这个问题超过3个小时,但没有运气。非常感谢各位。
发布于 2015-10-16 02:47:36
$_COOKIE‘’ci_ session‘只是指向’ci服务器中会话id的指针。您无法从取消序列化中获得任何信息(请注意,您从错误日志获得的第一个PHP通知是因为不序列化无效的格式值)。
如果您将用户it保存为uid,只需使用$_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;
}致以敬意,
https://stackoverflow.com/questions/33161019
复制相似问题