织梦上传到服务器不显示图像,织梦dede源码前台会员发布文章带图片不显示怎么办?...

织梦dede源码前台会员发布文章带图片不显示怎么办?

织梦无忧

2018-11-20 09:33

摘要:

经常使用织梦dedecms程序建站的朋友们都知道织梦最新版也是有两个版本的,分别是DEDE5.7SP1版,还有5.7版,但是使用织梦5.7版本程序有一个非常大的毛病:前台会员上传图片或者远程图片本地化,图片可以保存在服务器,但文章中的图片代码被添加反斜杠,导致图

经常使用织梦dedecms程序建站的朋友们都知道织梦最新版也是有两个版本的,分别是DEDE5.7SP1版,还有5.7版,但是使用织梦5.7版本程序有一个非常大的毛病:前台会员上传图片或者远程图片本地化,图片可以保存在服务器,但文章中的图片代码被添加反斜杠,导致图片显示不出来。而且每次编辑,反斜杠就添加一倍,1条变2条,2条变4条,4条变8条,没完没了!但是后台的图片却完全正常。小编开始的时候认为只有自己遇到了这个问题,当去度娘那里搜索了一番。发现遇到这个问题的站长朋友还有很多呢,也有些人说注解掉某代码什么的,其实不解决问题。这个问题,绝对是程序的BUG,原因是没有把反斜杠给删除掉。下面小编就来详细描述下处理的方法吧。

首先连接FTP,找到member/article_edit.php 和member/article_add.php文件,分别使用高级编辑器打开。然后都找到以下代码:

1

$body = HtmlReplace($body, -1);

将其修改为以下代码:

1

$body = stripslashes($body);

修改后保存,然后上传到对应的目录下去覆盖,然后再登陆网站后台更新下缓存,这个时候再登陆首页注册一个会员来测试果然发现发帖子和编辑图片恢复正常了。以上方法就是关于织梦dedecms前台会员发布文章带图片不显示的处理方法了。

标签:

<think>嗯,用户的问题是DedeCMS添加文章后标题被解析成正则表达式(.*?)的原因和解决方法。我需要先理解为什么标题会被解析成正则表达式。根据用户提供的引用,尤其是引用[4]和[5],可能涉及到DedeCMS的标签问题或者是模板中的路径问题。 首先,DedeCMS的标签使用可能会影响内容解析。比如,如果标题中含有特殊字符,如{}或者$,系统可能会误认为是标签或变量。例如,标题中如果有类似{dede:field.title/}这样的内容,可能会被系统错误解析,导致显示为(.*?),这可能是因为标签未正确闭合或使用了错误语法。 另外,模板路径的问题也可能导致这种情况。引用[5]提到模板中的路径使用{dede:global}标签来获取根目录,如果标题中小心包含类似的结构,可能会被系统误解析为标签,从而触发正则替换。例如,标题中的某些字符组合可能被误认为是标签的开始或结束,导致系统尝试解析并替换成(.*?)。 接下来要考虑解决方法。首先检查标题中是否有特殊符号或类似标签的结构。如果有,可能需要转义这些字符,或者在添加文章时避免使用这些符号。其次,检查模板文件是否有错误,特别是标题输出部分是否正确使用了标签,比如{dede:field.title}是否被正确转义或处理。可能需要修改模板,使用htmlspecialchars函数对标题进行编码,防止解析错误。 另外,查看系统是否有相关的安全过滤设置,可能标题中的某些字符被过滤或替换成了正则表达式。如果是这样,可能需要调整系统配置或修改正则过滤规则。还有,更新到最新版本的DedeCMS,可能这个问题在后续版本中已经修复了。 最后,建议用户参考官方文档或社区,看看是否有类似的问题和解决方案。引用[4]提到可以参考官方文档,所以这也是一个重要的步骤。同时,确保模板中的标签正确闭合,避免在标题中使用容易冲突的符号,或者在后台进行适当的字符替换设置。</think>### 原因分析 在DedeCMS中添加文章后标题被解析为`(.*?)`,通常由以下原因导致: 1. **标签未闭合或语法错误** 若标题包含类似`{dede:...}`的未闭合标签或错误语法,系统可能误将其识别为动态标签并尝试解析为正则表达式[^4]。 2. **特殊字符触发正则过滤** DedeCMS内置安全机制可能将标题中的特殊符号(如`$`、`{}`)误判为潜在攻击代码,自动替换为`(.*?)`以规避风险[^2]。 3. **模板输出未正确转义** 若模板中未使用`htmlspecialchars`等函数对标题内容转义,可能导致动态标签解析异常[^5]。 --- ### 解决方法 #### 1. **检查标题内容格式** - 避免在标题中使用`{ }`、`$`、`?`等符号,或通过后台替换功能将其转为全角字符。 - 示例:将`{test标题}`改为`{test标题}`(全角符号)。 #### 2. **修正模板标签** 在模板文件中(如`article_article.htm`),确保标题输出使用`htmlspecialchars`转义: ```html <h1>{dede:field.title function='htmlspecialchars(@me)'/}</h1> ``` 此操作可阻止系统解析标题中的特殊符号为动态标签[^5]。 #### 3. **关闭正则过滤规则** - 登录后台,进入`系统 -> 系统基本参数 -> 核心设置`。 - 找到`是否启用代码正则过滤`选项,设置为`否`(需权衡安全风险)[^4]。 #### 4. **更新系统或补丁** 若使用旧版本DedeCMS(如V4.0),建议升级至最新版本或应用官方补丁,修复已知解析漏洞[^1]。 --- ### 验证步骤 1. 添加测试文章,标题包含`{测试标题$}`。 2.前台显示为`(.*?)`,则需检查模板转义规则。 3.显示正常,说明问题已解决;否则需进一步排查安全过滤配置。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值