【问题标题】:Call to undefined function mcrypt_decrypt() - CometChat Laravel调用未定义的函数 mcrypt_decrypt() - CometChat Laravel
【发布时间】:2016-08-05 00:18:13
【问题描述】:

您好,我已经安装了 CometChat,但遇到以下错误:

Call to undefined function mcrypt_decrypt() in /home/vagrant/changeglobe/public/cometchat/integration.php on line 89

我将 Homestead 与 Nginx 一起用于 Laravel。我在很多地方都阅读了我需要启用 mycrypt 的内容,但没有发现任何正确的。如果您知道,请让我知道这个问题。谢谢。

【问题讨论】:

  • php5-mcrypt 必须安装启用。检查您的php.ini 文件以确保它已启用(未注释)。
  • 最好不要使用mcrypt,它是废弃软件,多年没有更新,不支持标准PKCS#7填充,只有非标准的空填充,甚至不能用二进制数据。而是考虑使用defuse,它正在维护中并且是正确的。

标签: laravel nginx homestead cometchat


【解决方案1】:

尝试将 /cometchat/integration.php 文件中的 getUserID() 函数替换为以下代码:

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,我们的团队将为您提供帮助。

【讨论】:

    猜你喜欢
    • 2014-01-19
    • 1970-01-01
    • 2016-10-03
    • 2016-03-30
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 2021-05-10
    • 2020-01-11
    相关资源
    最近更新 更多