云服务器促销,免费安装宝塔面板!
开启左侧

[DZ教程] Discuz!X2.5版本安装一些插件显示500错误,或页面打不开的问题修复

[复制链接]
当流科技 发表于 2018-7-10 23:29:17 | 显示全部楼层 |阅读模式

本站会员必须 邮箱验证成功后 才能发帖。马上注册查阅更多教程,下载海量资源,让你轻松玩做站

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

; O7 ?8 l9 h, Q* c4 i; e; q尽管目前discuz已经升级到X3.4版本了,但是X2.5版本还有很多站长在使用。目前使用X2.5版本的站长面临的一个很头疼的问题就是好多插件不支持了,或者安装插件直接显示500错误,$ v" B! F/ ~( p9 v0 _4 w$ g
具体表现为:安装没有前台界面的插件就可以正常使用,但是安装有前台界面的插件就打开报错!; Z; H2 }, ~, t6 i# S) I2 k
这个问题一般是由于X2.5模板解析机制不同导致的,凡是在模板中调用系统函数或者自定义函数的都会出现此类错误,经过与高版本discuz!对比,发现修复方法如下:# E) g( a/ \3 d+ U" h, Z
打开文件 \source\class\class_template.php
8 `6 Q5 ]7 J" ]1 K$ ~, v1 f找到代码
0 ]  [  k% S6 s! Z6 \7 d. [  j
  1. function stripblock($var, $s) {  , s6 \% ~6 q0 p* e
  2.     $s = str_replace('"', '"', $s);  4 t4 w( I! r6 a: a- Z0 Z  S
  3.     $s = preg_replace("/<\?=\\\$(.+?)\?>/", "{\$\\1}", $s);  6 }( p: L6 Q' t8 K. C
  4.     preg_match_all("/<\?=(.+?)\?>/e", $s, $constary);  
    0 l* x# h. S3 `% i) [: a
  5.     $constadd = '';  0 k! |; B6 h' O8 @3 [- i" H
  6.     $constary[1] = array_unique($constary[1]);  
    6 t. B: W3 Q; l( G! z# t7 N. v
  7.     foreach($constary[1] as $const) {  
    ! E! p. p7 x7 k' [: t
  8.         $constadd .= '$__'.$const.' = '.$const.';';  
    0 g8 U: n4 G0 Q+ M0 @: H( H
  9.     }  
    8 H2 L# q8 j, I2 V
  10.     $s = preg_replace("/<\?=(.+?)\?>/", "{\$__\\1}", $s);  
    ; {0 y+ S; M" H
  11.     $s = str_replace('?>', "\n\$var .= <<<EOF\n", $s);  
    6 u5 i: n/ n8 T7 m! `+ X  R' `
  12.     $s = str_replace('<?', "\nEOF;\n", $s);  5 H4 `# _- F) q" q! N2 \+ L
  13.     return "<?\n$constadd\$var = <<<EOF\n".$s."\nEOF;\n?>";  
    4 l2 Z: s9 g- x4 R1 m6 ?
  14. }  
复制代码

$ T4 j9 E2 h9 b3 x; O& S+ b( a) [+ e& \# ?: R3 z# b
在代码
4 t4 j! C, W' q) L
  1. $s = str_replace('<?', "\nEOF;\n", $s);
复制代码

9 o# `2 ~4 H8 h) R
. N* X. C# A. r/ E下方加上一行:
1 n. g6 `' A2 v0 m( X" N: [3 i
  1. $s = str_replace("\nphp ", "\n", $s);
复制代码
. K* k$ h+ q& c9 n8 n0 a
0 Y& n% l8 C3 S- t3 Y3 o4 H3 Q
上传覆盖此文件,然后将 \data\template目录中的内容清空。# N4 k' g  M3 m! j
修复完成!
当流科技-专业Discuz建站、仿站业务,专注处理discuz!论坛挂马,专注提供论坛托管维护服务! 提供Discuz论坛空间、VPS、云服务器!咨询QQ 569160956 778521512
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩课程推荐

抱歉,当前存在网络问题或服务器繁忙,详细错

主讲:我心枫叶 Discuz!教程

Discuz!论坛网盘附件免跳转下载(手机版网

主讲:当流科技 Discuz插件

宝塔面板绑定域名无法访问后台怎么解决?

主讲:风雨兼程 服务器学院

discuz论坛搬家教程,如何搬迁到新服务器?

主讲:风雨兼程 Discuz!教程

Discuz!X3.3全新安装和升级后快速回复框丢

主讲:风雨兼程 Discuz!教程

宝塔面板phpmyadmin 数据库502 Bad Gateway

主讲:当流科技 服务器学院

宝塔面板mysql怎么用navicat 连接数据库呢

主讲:当流科技 服务器学院

Discuz! X3.4虚拟人气虚拟用户在线插件 完

主讲:执手天涯 Discuz插件

商务合作

0551-66191059
service#dangliu.net
点击这里给我发消息
dz论坛/Discuz!论坛新手

关注微信公众号

QQ扫码 加 DZ技术群