29

织梦系统会员登录成功后返回之前来路页面

在使用织梦内容管理系统时,为使网站能有更好的用户体验度,我们都会对其进行功能方面的修改。那么会员登录成功后,返回到会员来到登录页面的前一页面的这个功能怎么修改呢?如下:

查找 文件member/templets/login.htm

第68行<input type="hidden" name="gourl" value="<?php if(!empty($gourl)) echo $gourl;?>">

改为<input type="hidden" name="gourl" value="<?php if(!empty($_SERVER['HTTP_REFERER'])) echo $_SERVER['HTTP_REFERER'];?>">

21

织梦网站管理系统禁止会员同一帐号多地登录

修改织梦网站管理系统PHP程序,实现禁止同一会员帐号多地登录,一般来讲就要从判断IP入手。我修改的这个原理是:会员登录后增加创建名为Only的cookie,当会员刷新页或浏览新页面时判断从数据表@_member中当前会员的loginip值md5后与Only比较异同,把此条件加在验证用户是否已经登录函数IsLogin()中,成立返回真,不成立返回假,即可实现。修改如下:

修改文件/include/memberlogin.class.php

构造函数,大约171行左右的$this->OnlyCookie = GetCookie("Only");代码下一行增加代码如下:
$this->OnlyCookie = GetCookie("Only");

验证用户是否已经登录函数IsLogin(),大约第290行 改为
function IsLogin()
{
$loginipCookie = substr(md5($this->fields['loginip']),0,16);
if($this->M_ID > 0 && $this->OnlyCookie == $loginipCookie) return TRUE;
else return FALSE;
}

重置用户信息函数ResetUser()内的最后,大约第389行左右代码DropCookie('DedeLoginTime');的下一行增加代码如下(除管理员外的cookie方法):
DropCookie('Only');
意为重置会员cookie信息

大约第530行左右保存用户cookie的函数PutLoginInfo()内的if($this->M_KeepTime > 0)内增加代码如下(除管理员外的cookie方法);
PutCookie('Only',substr(md5(GetIp()),0,16),$this->M_KeepTime);
意为增加cookie条目
下面的else内最后加上
PutCookie('Only',$this->M_LoginTime);

修改文件/include/userlogin.class.php(这个没有测试管理员的帐号效果,后来我没我修改这条,也就是说这条改不改不影响除ID为1的其他会员的禁止多地登录效果)
keepUser()函数内大约第315行增加代码如下:
PutCookie('Only', substr(md5('MrDede'.GetIp()),0,16), 3600 * 24, '/');
保持用户的会话状态,这里给管理员(id=1)增加了名为Only的cookie信息

25

织梦图集模型增加数据类型为“HTML文本”的自定义字段 发布着色内容出错

织梦二次开发,一是让系统更适合自己,为我所用;二是没有绝对完美的东西,修改它的BUG。

织梦图集模型增加数据类型为“HTML文本”的自定义字段 发布着色内容出错,表面上看是这样的,但实现上是在打开修改图集内容页时的返回值出错,再准确一点说,是HTML文本在修改查看时被过滤了一次而出错(把原来的<span style…替换成了<span x=”">yle…)。

dede_addonimages数据表中是正确的

dede_addonimages数据表中是正确的

20150625035610 20150625035643

因为在发布完图集内容后,我查看数据表dede_addonimages数据内容,是正常并正确的。所以问题就不是出在发布的环节,也没必要研究/dede/album_add.php这个文件了(之前我走了弯路)。

(到这一步之前也走了一些弯路)那么现在就来研究/dede/album_edit.php这个文件,发现是$addRow=XSSClean($addRow);这句在作怪,注释掉,OK!

20150625041905

整个56行$arcRow=XSSClean($arcRow);$addRow=XSSClean($addRow);都可以注释掉。之所以说这行都可以注释掉是因为在文章模型的修改文档文件(/dede/archives_edit.php)中就没有这各方法过滤,根本就没有出现XSSClean()方法。

其它,那个过滤规则最终是指向\include\helpers\filter.helper.php的RemoveXSS方法的,没去细研究。

天亮了,睡了……

21

使用itemindex或autoindex实现织梦频道页、列表页显示文章顺序编号

使用织梦内容管理系统建站,想在频道页或列表面显示文章顺序号、隔行变色、每五行一个小区块儿等等效果,这个功能就要大显伸手了。之前我也总结过一些关于织梦标签的调用方法手册,可以直接做为工具页来直接复制。

列表页使用方法:

织梦列表页隔行换色(可以通过写the和that两类的样式来实现不同背景色):

可以使用在dede:arclist和dede:list下,使用的织梦列表页另一种方法(显示自然顺序标号):

频道页使用方法:

大体意思就是这样,至于加在什么位置,就自己选吧!

织梦默认的搜索页不支持autoindex标签,需要修改核心文件增加支持:

找到文件:include/arc.searchview.class.php

第一处:

第二处:

20

dedeCMS数据库操作类中$dsql的使用方法与实例

dedecms二次开发中对数据库操作类的使用尤为重要,下面是对数据库操作类的一些简单说明和实例。

引入common.inc.php文件

查询某表是否存在,存在返回TRUE,否则返回FALSE

获取一条记录的内容

将查询获取总数输出

将查询的若干条记录输出

将查询的若干条记录输出dedecms5

插入一条记录

经实践证明,上面的语句不能正常插入数据库,下面是正确的语句

删除一条记录

更新一条记录

判断获取数据库内容的常用方法

获取总数

关闭数据库

实例 Continue reading

17

织梦5.7使用图片集模型上传图片弹出框显示302不能上传图片

织梦5.7在栏目使用图片集模型时,后台单张上传或多张同时上传,会出现302,并且上传图片失败。

解决方案:

织梦程序根目录/include/userlogin.class.php
session();的上面增加以下几行即可(如下图):

织梦上传图片弹出302

代码如下,复制粘贴即可:

注意:在编辑代码时使用专业代码工具,不要使用记事本工具,防止出错!

23

sdcms常用手册汇总

一、sdcms模板语法规则

1.变量表示(或常量)
{name}将被解析成<%=name%><%=name%><%=name%>,表示显示变量name的值,其中的“name”由英文字母、数字和下划线组成首字母必须是英文字母或者下划线。

2.条件判断
{if *}{elseif *}*{else}*{/if} 或{if *}{/if} 其中{if *}中的*就是此判断语句的条件表达式,符合Asp的表达式。

3.模板包含
格式:{sdcms:include(“路径+模板名称+后缀”)}
示范:{sdcms:include(“sdcms_head.asp”)}
说明:上述示范表示包含当前模板所在文件夹的“sdcms_head.asp”文件

4.定义变量
{dim a:a=1}将被解析为<%dim a:a=1%><%dim><%a=1%>

如果您不习惯这套语法,也可以直接在模板中书写Asp代码,例如:<%=now()%><%response.write><%=test%>
<%dim a:a=”1%”>,相当于定义了个变量a,且值为1
<%=name%>

二、sdcms全局标签

什么是全局标签?
全局标签意思是在SDCMS的任何模板页面均可正常调用的标签。
Continue reading

18

个人总结的织梦手册(实用一)

//作者:莪叆啰    整理:织梦先生    QQ:3444056

//织梦的网站查询手册

//红色为问题集  //橄榄色为注释  //紫色为拓展

 

1.网站标题(优化):
{dede:field.title/}_{dede:global.cfg_webname/}

 

2.当前名称:

{dede:field name='typename'/}

 

3.导航条(父类、子类):

 

4.面包屑:

生成的代码为 <a href=”#”>首页</a> > <a href=”#”>新闻动态</a>

函数的位置 include/typelink.class.php
Continue reading

12

忘记织梦管理员密码怎么修改

织梦CMS网站内容管理系统,是国内用户最多的网站程序,可再开发性强,深受广大站长朋友的喜爱。那么我们在初装的时候,由于某些问题或者是莫名的出错,造成织梦后台无法修改管理员密码,总是提示密码不正确。以前我也时不时的会碰到这种问题,现在把修改方法写出来,希望能帮助到个位和我一样喜爱织梦CMS的朋友。

分析:

织梦管理员密码存储表:dede_admin(“dede_”,这是默认表前缀)

织梦管理员密码加密方式:MD5

织梦管理员密码取位方法:MD5(32位小写)后,去掉前去5位,去掉后去7位,取中间20位

修改方法一:

MD5(32位小写)加密“admin”(不含引号)后,得21232f297a57a5a743894a0e4a801fc3,按上面的取位方法,得f297a57a5a743894a0e4

进入数据库,找到dede_admin表,浏览进入,编辑ID为1的条目,修改字段为pwd下的值为f297a57a5a743894a0e4

点击“执行”或“保存”,写成(现在管理员密码即为admin)。

修改方法二:

使用织梦cms后台的SQL语句功能修改管理员密码

织梦后台>>系统>>SQL命令行工具>>运行SQL命令行>>单行命令(支持简单查询)

在表单处输入

点击“确定”,完成(现在管理员密码即为admin)。

注:这只是两个基本的修改管理员密码的方法,具体你想怎么修改,扩展一下思维也是可以的。

12

禁用WordPress自动保存与修订历史功能

在新版本的WordPress博客程序中,避免数据丢失,添加了自动保存功能,默认开启了这一功能。用户在使用WordPress撰写博文时,每隔一段时间,WordPress都会将用户所添加的内容进行保存。

有利就有弊,与此对应的弊端是,一旦WordPress保存一次,WordPress的MySQL数据库中的wp_posts表里就会增加一行无用数据,一段时间后,此举会使得用户的数据库里含有大量的垃圾内容,使得数据库不停的增大,最后性能也会下降。

现在开始看看如何关闭wordpress的自动保存功能,具体步骤如下:

一、修改post-new.php文件

禁用自动保存 WordPress程序下wp-admin文件夹中找到post-new.php和post.php文件

在post-new.php文件中搜索以下代码:

在post.php文件中搜索以下代码:

搜索到结果,然后在其前面加上“//”(不含引号)注释掉即可;

切记:在post.php文件搜索结果上一行判断代码的末尾加一个英文分号,否则发布会出错。

或者把post.php文件搜索结果上一行的if ( 'attachment' !== $post_type )也注释掉。我不懂PHP,但是我用我的笨脑瓜去想:判断的结果都不要了,那还要那个判断有什么用。你说呢?

二、修改wp-config.php文件
Continue reading