分页: 1 / 1

php 8.0 公布对 phpBB 的兼容性

发表于 : 2020年12月22日 18:47
davidyin
在2020年11月26日,php 官方发布了了 php 8.0 语言。
PHP 8.0 是 PHP 语言的一个主版本更新。
它包含了很多新功能与优化项, 包括命名参数、联合类型、注解、构造器属性提升、match 表达式、nullsafe 运算符、JIT,并改进了类型系统、错误处理、语法一致性。

暂时很多软件,基于 php 编写的程序尚未更新并兼容 php8.0。
比如 phpBB 就还没有兼容,可能需要两个小版本之后才会完全兼容。

所以暂时先等着,本站目前还是用着 php 7.4。

Re: php 8.0 公布对 phpBB 的兼容性

发表于 : 2021年1月21日 16:10
寂默心流
  同样是这个phpBB3平台,在php7.3环境下注册的用户在php8.0环境下没法登录,反之亦然。我几乎可以肯定是php7.3和php8.0的加密机制有了变化,导致你登录时输入的明文密码加密后与数据库中存的加密后的密文不一致,所以无法登录,报密码错误。

  这就难办了,就算以后phpBB3出了4.0版本,可以全面兼容php8.0了,可这密码不一致的问题还是需要解决。我倒是有一个办法,那就是在存密码的数据表中加一个字段,把表中老密文挨个解密成明文,再用php8.0的加密方式加密,加密结果存在该账户的这个新字段中。用户在登录时只要输入密码加密后的密文和密码数据表中两个密文字段中的任一个密文匹配成功就算通过。

  可我等不及啊,我采用了很搞笑的解决方法,就是在php8.0下注册一个新账号,身份只能是新注册用户,权限很小的。我再到php7.3下用老的管理员账号登录,在管理员控制面版对这个php8.0下注册的新账号提权。这样再回到php8.0环境后,这个新账号就是管理员了。

  Windows下装的php8.0就可以允许老的管理员账号顺利登录,这说明微软的程序媛还是很贴心,很细致的。debian下的程序猿就差意思了。 :ugeek: