php wcenter,php 7.2下wecenter的兼容性修改

php7.2已经放弃了mcrypt扩展,导致wecenter在7.2下无法正常使用登录功能,因此我们得换掉mcrypt加密方式,采用openssl加密。

打开/system/core/crypt.php,删掉原有的__construct(){},encode(){},decode(){}里的内容, 分别改成如下内容

private $cipher = "AES-256-CBC";

private $key = G_COOKIE_HASH_KEY;

private $ivLen;

public function __construct()

{

$this->key = hash('sha256', $this->key, true);

$this->ivLen = openssl_cipher_iv_length($this->cipher);

}

public function encode($input)

{

$iv = openssl_random_pseudo_bytes($this->ivLen);

$data = openssl_encrypt($input, $this->cipher, $this->key, OPENSSL_RAW_DATA, $iv);

$data = base64_encode($iv . $data);

return $data;

}

public function decode($input)

{

$input = base64_decode($input);

$iv = substr($input, 0, $this->ivLen);

$input = substr($input, $this->ivLen);

$decrypted = openssl_decrypt($input, $this->cipher, $this->key, OPENSSL_RAW_DATA, $iv);

return $decrypted;

}

2、php 7.2的count()函数只支持数组或对象的计算,传入字符串或数字会报warning错误,如果你用的是7.2,打开wecenter第一步就会报500错误,因为zend框架里有一个地方使用count计算了一个不是数组的变量。因此我们还要把它改掉:

打开/system/Zend/Db/Table/Abstract.php,找到1307行,

$keyValuesCount = count($keyValues);把它插入到1313行后面,改完之后是这样的

if (!is_array($keyValues)) {

$keyValues = array($keyValues);

}

$keyValuesCount = count($keyValues);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建自己的知乎,#WeCenter 问答系统简介 --- WeCenter 问答系统是一套开源的社交化问答软件系统。作为国内首个推出基于 PHP 的社交化问答系统,WeCenter 期望能够给更多的站长或者企业提供一套完整的社交问答系统,帮助社区或者企业搭建相关的知识库建设。 ###WeCenter 问答系统的下载 您可以随时从我们的官方下载站下载到最新版本,以及各种补丁 [http://www.wecenter.com/downloads/][1] ###WeCenter 问答系统的环境需求 1. 可用的 www 服务器,如 Apache、IIS、nginx, 推荐使用性能高效的 Apache 或 nginx. 2. PHP 5.2.2 及以上 3. MySQL 5.0 及以上, 服务器需要支持 MySQLi 或 PDO_MySQL 4. GD 图形库支持或 ImageMagick 支持, 推荐使用 ImageMagick, 在处理大文件的时候表现良好 ###WeCenter 问答系统的安装 1. 上传 upload 目录中的文件到服务器 2. 设置目录属性(windows 服务器可忽略这一步) 以下这些目录需要可读写权限 > ./ ./system ./system/config 含子目录 3. 访问站点开始安装 4. 参照页面提示,进行安装,直至安装完毕 ###WeCenter 问答系统在 Sina App Engine 安装 参见这篇文章: [http://www.wecenter.com/category/support/sae-install/][2] ### WeCenter Rewrite 开启方法 参见这篇文章: [http://www.wecenter.com/category/support/settings/][2] ### WeCenter 问答系统的升级 升级过程非常简单, 覆盖所有文件之后运行 http://您的域名/index.php?/upgrade/ 按照提示操作即可 ###WeCenter 软件的技术支持 当您在安装、升级、日常使用当中遇到疑难,请您到以下站点获取技术支持。 - 支持:http://www.wecenter.com/support/ - 讨论区:http://wenda.wecenter.com [1]: http://www.wecenter.com/downloads/ [2]: http://www.wecenter.com/category/support/sae-install/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值