在2020年11月26日,php 官方发布了了 php 8.0 语言。
PHP 8.0 是 PHP 语言的一个主版本更新。
它包含了很多新功能与优化项, 包括命名参数、联合类型、注解、构造器属性提升、match 表达式、nullsafe 运算符、JIT,并改进了类型系统、错误处理、语法一致性。
暂时很多软件,基于 php 编写的程序尚未更新并兼容 php8.0。
比如 phpBB 就还没有兼容,可能需要两个小版本之后才会完全兼容。
所以暂时先等着,本站目前还是用着 php 7.4。
php 8.0 公布对 phpBB 的兼容性
版面规则
《发帖时,请复制下列格式文本,提供完整的信息,勿简略发布》
###### 以下为“基本的提问格式” ######
如果需要,请提供测试用的账号与密码
若是管理账号,请使用短信联系站长
《发帖时,请复制下列格式文本,提供完整的信息,勿简略发布》
###### 以下为“基本的提问格式” ######
- 主机操作系统: Windows (XP, 7, 8, 10)、Linux(Redhat,Centos, Mandrake等等)、或者其他的(请务必注明版本)
- 快速架站程序: AppServ、XAMPP 等等(请务必注明版本号)
- 您的上网方式:ADSL、Cable、FTTB等等 (请务必留下 ISP 名称或 ISP 官网)
- 您安装的程序: Apache + php + MySQL 或者其他的组合 (请务必留下版本号,如果使用上面的快速架站程序就不必写了)
- 您的 phpBB 版本: phpBB 3.3.0
- 您的域名: 比如 phpbbchinese.com
- 您的 phpBB 网址: 比如 https://www.phpbbchinese.com/
- 安装扩展: 请注明安装扩展的名称,版本以及参考链接(非扩展问题免填)
- 安装风格: 请注明安装的风格名称,版本以及参考链接(非风格问题免填)
- 错误代码: 请使用 Code 标签将错误代码标识出来,如下:
代码: 全选
错误代码
- 错误状态:如果没有错误代码,请直接贴出截图,或者是详细叙述错误状态内容。
如果需要,请提供测试用的账号与密码
若是管理账号,请使用短信联系站长
Re: php 8.0 公布对 phpBB 的兼容性
同样是这个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:
这就难办了,就算以后phpBB3出了4.0版本,可以全面兼容php8.0了,可这密码不一致的问题还是需要解决。我倒是有一个办法,那就是在存密码的数据表中加一个字段,把表中老密文挨个解密成明文,再用php8.0的加密方式加密,加密结果存在该账户的这个新字段中。用户在登录时只要输入密码加密后的密文和密码数据表中两个密文字段中的任一个密文匹配成功就算通过。
可我等不及啊,我采用了很搞笑的解决方法,就是在php8.0下注册一个新账号,身份只能是新注册用户,权限很小的。我再到php7.3下用老的管理员账号登录,在管理员控制面版对这个php8.0下注册的新账号提权。这样再回到php8.0环境后,这个新账号就是管理员了。
Windows下装的php8.0就可以允许老的管理员账号顺利登录,这说明微软的程序媛还是很贴心,很细致的。debian下的程序猿就差意思了。 :ugeek:
老互联网遗民,草堂堂主(laochengzi.cn)