dedecms(织梦)表前缀的bug

    表前缀的做法很科学,当一个数据库中的存在多个项目时,而项目之间必定会存在相同命名的表,这时候给项目加上表前缀是很有必要的,所以我们应该习惯给项目里的表加表前缀。

    通常我们设置表前缀是把表前缀做成一个配置。在程序中我们会把该表前缀加到sql语句的表名前。但是在程序中的具体操作有很多方式。

    目前我看到了2种关于把表前缀加到sql语句中的做法:

    1.dedecms

    在写sql语句的时候不考虑表前缀的问题,在所有表的前面都加上同样的字符串(#@__),然后在sql语句执行前把sql用字符串匹配,将之前的字符串(#@__)替换成之前配置的表前缀。

    2.ecshop

    在公共函数库里面加一个函数,通过传入表名返回带有表前缀的表名,在sql语句中有表名的地方都调用该函数。


    ecshop的做法很值得采取,而dedecms则不提倡使用,因为这种做法是有bug的。当sql语句中存在‘#@__’的地方都会被替换成表前缀,比喻我在dedecms系统中添加或者编辑我的这篇博客,那么发布之后你看到的内容就和我的原文就不一样的了(你能看出来哪里不一样吗?),还有在我们进行文章、产品搜索的时候,如果你输入的是‘#@__’的话,那么系统返回的搜索结果是搜索表前缀的结果。

    

时间: 2024-10-20 23:06:14

dedecms(织梦)表前缀的bug的相关文章

dedecms织梦做中英文(多语言)网站步骤详解

用dedecms织梦程序如何做中英文网站,下面是一个详细的图文教程,希望能帮助到大家. 以下是用dedecms织梦程序制作过的一个5国语言网站,下面开始教程. 一.首先在后台建栏目,有三点需要注意 1.需要做几种语言就加几个大的栏目,我把这个栏目叫做封面栏目,里面都是自己语言的导航栏目 2.封面栏目“常规选项”的文件保存目录设置为cn或者en 3.封面栏目“高级选项”的列表模板设置为cn_index.htm或者en_index.htm 二.网站代码的调用 每种语言的封面栏目和每种语言下的导航栏目

dedecms织梦联动筛选[伪静态-目录形式]

演示效果 dedecms织梦联动筛选[伪静态-目录形式],网站用的是静态,筛选用的是伪静态,筛选的伪静态地址以字段和键值目录形式呈现,让筛选URL与静态保持一致.如: 静态栏目页 http://www.123.com/dianshi/ 静态栏目页分页 http://www.123.com/dianshi/list_1_2.html 伪静态筛选页 http://www.123.com/dianshi/area_0/ 伪静态筛选分页 http://www.123.com/dianshi/area_0

dedecms织梦七牛云存储二次开发

DeDeCMS(织梦)整合七牛云储存的优势1.节省自身服务器带宽.流量.储存空间,因为使用七牛云前端JS SDK上传到七牛云.2.提高网站加载速度,因为大部分的流量由七牛云分发,减少了自身服务器带宽的占用,七牛云的CDN比普通的自建服务器还是要快的.3.不破坏系统兼容性,可以后台配置储存位置,如果哪天想用回自己服务器储存图片,只需要修改一个网站后台选项即可.DeDeCMS(织梦)整合七牛云储存思路在编辑文章前,通过网站后台设置图片储存位置(七牛云或者自己服务器),然后获取对应的图片地址.对DeD

dedecms织梦添加ueditor百度编辑器(支持本地图片水印)

本站所有附件均为UTF-8版本,GBK版本的童学请自行转码: 教程最下面有解决栏目内容添加失败的解决方法和本地上传图片加水印方法. 最终效果 1.直接到百度编辑器官方下载PHP对应的版本 ueditor官方地址:http://ueditor.baidu.com/website/download.html 2.dedecms 程序 include文件夹下,创建 ueditor 文件夹 把下载到的ueditor文件扔进去(index.html不要) 3.include\inc\inc_fun_fun

怎样查看一个网站是否使用dedecms织梦程序的版本

我们知道一个网站是使用的织梦DedeCMS的程序之后(怎么判断网站是否使用织梦程序,可以看这篇文章:怎样查看一个网站是否使用dedecms织梦程序做的),如果还想知道这个网站使用的是织梦的哪个版本,是否打了最新的补丁等等信息,我们就需要进一步的找默认程序相关的信息.首先我们需要了解一下,织梦的版本判断是在哪个文件里面的.如果能够访问这个文件,那就可以判断出目标网站所使用的织梦DedeCms是哪个版本的,打了哪一天的补丁了.具体来说,织梦的版本号信息是在/data/admin/ver.txt中.我

如何为织梦表单添加时间

在使用织梦表单的时候,我们会发现没有添加提交时间的选项.而在我们日常工作中,获得访客提交的时间非常必要.下面,我来介绍一种简单的办法 首先,我们打开自定义表单管理,点击添加新字段 然后填写表单提示文字和字段名称,我们这先写为Time,重点是数据类型选择单行文本, 此时我们就生成了一个表单,通过前台预览-发布信息,然后查看源代码将表单代码复制到自己网站上去. 此时网站就有了一个表单,但是时间是空的,我们通过调用js来输出当前时间 代码如下 var nowDate = new Date(); var

dedecms织梦修改文章后如何不改变时间文章排序?

dedecms织梦修改文章后台默认的情况是这样的: 当你编辑完了点击提交,DEDECMS就会自动的把原先发布的时间改成当前的.也因此,在文章列表排序会把新编辑的文章排到前面.这个过程对很多情况都是合理的,但是有些时候,我们不需要更新当前的时间,只需用原先发布的时间就行.其实解决方法很简单:(以目前最新的DEDECMS5.7 SP1为例) 1,找到 dede/templets/article_edit.htm 2,在article_edit.htm文件里搜索找到$nowtime = GetDate

Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法

Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法,亲测可用! Dedecms(织梦)首页的图片调用,相信大家已经非常的清楚,但是今天我在进行内容页的编写的时候,发现了内容页图片的调用问题! 这种问题,一般出现在产品站内页,因为会有产品缩略图的图片展示,所以今天我专门搜集了这方便的帖子! 为大家来解决这个问题,我想一定能帮助到大家! 好了话不多说,写内容先! 文章内容页和图片集内容页,缩略图的调用.适合内页中调用. <img src="{dede:field.picname 

dedecms织梦系统后台验证码图片不显示的解决方法

网站迁移后,dedecms织梦系统后台验证码图片不显示的解决方法通用解决方案-取消后台验证码功能因为没有验证码,不能进后台,所以修改php文件源代码:方法一:打开dede/login.php 找到如下代码    if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){        ResetVdValue();        ShowMsg('验证码不正确!','logi

dedecms织梦首页被篡改 网站被黑被跳转的解决办法建议

2018年的中秋节即将来临,我们Sine安全公司,最近接到很多用dedecms程序的企业公司网站客户的反馈,说是公司网站经常被篡改,包括网站首页的标题内容以及描述内容,都被改成了什么×××,北京PK10等等的×××内容,而且大多数的网站客户都是从百度搜索关键词,点击进公司网站会被直接跳转到×××上去.对此我们Sine安全已经处理过很多像这样问题的客户网站,这种安全问题普遍的特征就是:频繁反复性质的篡改网站首页,重新在网站后台首页生成后,被篡改的内容就会清除,但没过多久就又被篡改了,使很多网站的负