Попробуйте заменить функцию getUserID() в файле /cometchat/integration.php на код ниже:
function getUserID() {
$userid = 0;
if (!empty($_SESSION['basedata']) && $_SESSION['basedata'] != 'null') {
$_REQUEST['basedata'] = $_SESSION['basedata'];
}
if (!empty($_REQUEST['basedata'])) {
if (function_exists('mcrypt_encrypt') && defined('ENCRYPT_USERID') && ENCRYPT_USERID == '1') {
$key = "";
if(defined('KEY_A') && defined('KEY_B') && defined('KEY_C')){
$key = KEY_A.KEY_B.KEY_C;
}
$uid = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode(rawurldecode($_REQUEST['basedata'])), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
if (intval($uid) > 0) {
$userid = $uid;
}
} else {
$userid = $_REQUEST['basedata'];
}
}
if (!empty($_COOKIE['laravel_session'])) {
$session= cookie_decrypt($_COOKIE['laravel_session']);
$data = file_get_contents(dirname(dirname(dirname(__FILE__))).'/storage/framework/sessions/'.$session);
if (!empty($data)) {
$k = explode(';i:',$data);
$m = explode(';s:',$k[1]);
$userid = $m[0];
}
}
$userid = intval($userid);
return $userid;
}
Если вы по-прежнему сталкиваются с проблемами, пожалуйста, создать тикет https://my.cometchat.com/tickets и наша команда будет помогать вам.
'php5-mcrypt' должен быть установлен _and_ включен. Проверьте файл 'php.ini', чтобы убедиться, что он включен (раскомментирован). – camelCase
Лучше не использовать mcrypt, он является отказом, не обновлялся годами и не поддерживает стандартное дополнение PKCS # 7, только нестандартное нулевое заполнение, которое нельзя даже использовать с двоичными данными. Вместо этого рассмотрите использование [defuse] (https://github.com/defuse/php-encryption), оно поддерживается и является правильным. – zaph