头像

wordpress和dedecms用哪个好?

很多刚开始做网站的同志都有过这样纠结的经历,wordpress和dedecms到底选哪一个?主要是看建站的用途,以下是wordpress和dedecms的对比:

建站方向对比

如果是单单的建立一个博客,那么选择wordpress是首选,这个是博客系统,非常有优势,但是也用dedecms建博客的人也很多;如果是建立小型站,企业站,那么dedecms有优势

插件比较

wordpress的插件资源特别丰富,一般的功能都可以有对应的插件来实现,dedecms的插件也不少,但是更多的是付费的,这对于刚开始建站就就付费买插件并不好,当然如果很富有,那也不在乎那几个费用

语言选择对比

如果建站的浏览群是在国外,那么最好是wordpress,wordpress是世界性质的建站系统,支持的语言特别多,原版的是英文的,汉化也很方便;dedecms免费的目前只有中文,英文的是付费的

收录方面对比

在国内,dedecms的收录比wordpress要好点,而且收录的速度也比较快,因为dedecms的构架是根据SEO特性设置的,这点dedecms确实比wordpress要强不少,但是如果是在国外的话,两者的收录差不多,但是也看情况,dedecms倾向百度搜索引擎,而wordpress倾向google和别的搜索引擎

安全稳定性对比

dedecms的发展时间只有短短的几年,而wordpress的历史要长很多,wordpress各方面的安全技术更高,更稳定;dedecms最近几年的安全性也在提高,不过还是远不及wordpress,一个网站的安全是非常重要的,一个站如果今天被植入广告,明天被注入木马,那是非常闹心的事

入手管理对比

wordpress的入手很容易,但是如果能懂php那就更好用,dedecms的入手稍微要麻烦点,但是也不难,也有的人认为dedecms更好入手和管理,根据个人的技能决定哪个好用好管理

头像

完美DEDECMS转WORDPRESS方法

使用织梦CMS每个月都被黑,打完官方最新补丁不久又有漏洞继续被黑,算是受够了,果断把网站从天杀的dedecms中搬家到wordpress程序,网上搜索转换教程,折腾几个小时,顺利把网站的文章转移到wordpress程序,保留了文章点击数、文章日期、文章分类,文章标签的数据表着实弄不过来,只能放弃!下面是具体的操作方法,操作前请备份好网站数据。

1、DEDECMS文章标题等基本数据导入wordpress站点

织梦CMS的文章标题、正文和栏目分别存放在三个不同的数据表中,而wordpress则把文章标题和正文放在一个数据表,栏目(分类目录)放在另一个数据表中,为了简化后面的工作,第一步是制作生成织梦CMS的全站RSS文件(制作方法:http://www.boke8.net/dedecms-echo-all-post-rss.html),然后通过wordpress程序后台——工具——导入——RSS,上传导入生成的织梦全站RSS文件。

这样就可以使wordpress在wp_posts数据表上生成文章标题,在wp_terms数据表上生成文章分类,并匹配起来,此外通过RSS导入,wp_posts数据表上还导入了文章摘要、日期、自定义网址等数据,但是RSS不会导入全文!

2、导入织梦CMS文章全文到wordpress站点

织梦文章的数据存储在dede_addonarticle数据库的body字段中,现在需要把body字段的内容转到wordpress数据库的wp_posts数据库的post_content字段里。

这个转换需要使用一个桥梁——那就是dede_archives数据表,即dede_addonarticle上body的内容先转到dede_archives上,再从dede_archives转到wp_posts的post_content里。这两次转换的匹配点,分别是织梦里的文章id,以及Wordpress里已经导入了的文章标题(这与织梦里的文章标题是一样的)。

具体的操作步骤如下:

进入phpmyadmin,选择dedecms网站使用的数据库,在SQL输入框中执行以下SQL语句,在织梦数据库的dede_archives表上,添加字段body:

然后再执行以下SQL语句把dede_addonarticle数据表中的body字段内容导入到dede_archives的body字段,语句以dede_addonarticle的aid和dede_archives的id为匹配点:

接着通过phpmyadmin导出功能把dede_archives数据表导出,然后再通过导入功能把该数据表导入wordpress网站使用的数据库中,使其与wp_posts数据库处在同一个数据库里。

下面再次使用SQL语句把dede_archives的body导入到wp_posts上的post_content上,以文章标题为匹配点(前提是文章标题都是唯一的):

至此文章内容部分转换完成!

3、织梦CMS文章点击数导入wordpress网站

织梦CMS的文章有点击数(即是文章的阅读数),不导入wordpress怪可惜。

在wordpress上安装Simple Hit Counter插件,启用后数据库里会生成wp_hitcount表,在SQL输入框中执行以下语句在增加hits字段:

执行以下SQL语句,把dede_archives上的点击数click导入到wp_posts的hits上,仍然以标题为匹配点:

最后执行以下SQL语句把wp_posts的hits导入到wp_hitcount的hits上,这次以wp_posts的ID和wp_hitcount的pid为匹配点:

至此点击数转换完成,然后在模板中添加Simple Hit Counter插件调用代码即可。

附:我习惯使用wp-postviews插件,所以我是把织梦CMS文章点击数转换为wp-postviews插件的浏览数。但是由于该插件需要文章有浏览数之后才会在数据库中生成meta_key的值,因此需要先在wp_postmeta表中添加对应的meta_key的值。

执行以下SQL语句,把文章ID导入wp_postmeta中的post_id字段:

执行以下SQL语句,把上面添加的post_id中的meta_key字段的null设置为views值:

执行以下SQL语句,把上面添加的post_id中的meta_value字段的null设置为0值:

然后再把wp_posts的hits导入到wp_postmeta数据表中的meta_key字段的值views对应的meta_value,SQL语句如下:

头像

ckplayer flashvars 参数说明

参数 使用说明
f s=0时地为普通的视频地址
s=1时是一个网址,网址里存放视频地址
s=2时是一个网址,网址里输出xml格式的视频地址
s=3时是一个swf文件地址,swf和播放器进行交互读取地址
a 当s>0时,a和f值拼出一个新的地址,在新的地址里读取视频地址,
s 调用方式,0=普通方法(f=视频地址),1=网址形式,2=xml形式,3=swf形式(s>0时f=网址,配合a来完成对地址的组装)
c 是否读取文本配置,0不是,1是,当=1时,播放器会自动读取和播放器相同名称的xml(默认是的ckplayer.xml)来进行进一步的配置
x 在c=1的时候,自定义调用xml风格路径,为空的话将调用跟播放器同名的xml文件。这个参数的作用是可以使用多套风格或设置的文件来进行随机调用
i 初始图片地址,就是在播放器默认是暂停或默认不加载的情况下先给一张图片遮在播放器前面,让其看起来不会一片黑,关于初始图片的大小的控制请参考配置文件里(ckplayer.js或ckplayer.xml)的ck.setup的第14个参数
d 暂停时播放的广告,swf/图片,多个用竖线隔开,图片要加链接地址,没有的时候留空就行
u 暂停时如果是图片的话,加个链接地址,如果没有就留空,
l 前置广告地址(也可以是以|隔开的数组),swf/图片/视频,多个用竖线隔开,图片和视频要加链接地址,关于前置广告
r 前置广告的链接地址,多个用竖线隔开,没有的留空
t 视频开始前播放swf/图片时的时间,多个用竖线隔开
y 这里是使用网址形式调用广告地址时使用,如果要使用这个参数,前置广告的l,r,t里至少要设置l的参数为空,播放器才会根据y的值进行调用
z 缓冲广告,只能放一个,swf格式
e 视频结束后的动作,0是调用js函数function playerstop(){}、这个参数有一篇单独的使用说明,1是循环播放,2是暂停播放并且不调用暂停广告,3是调用视频推荐列表的插件,4是清除视频流并调用js、功能和0差不多,5是暂停并且同时调用暂停广告
v 默认音量,0-100之间
p 视频默认0,暂停,1是播放
h 播放http视频流时采用何种拖动方法,=0不使用任意拖动,=1是使用按关键帧,=2是按时间点,=3是自动判断按什么(如果视频格式是.mp4就按关键时间,.flv就按关键帧),=4也是自动判断(只要包含字符mp4就按mp4来,只要包含字符flv就按flv来)
q 视频流拖动时参考参数,默认是start
m 默认是否采用点击播放按钮后再加载视频,0不是,1是,这个参数的好处是一个页面上放多个视频时不需要加载所以的视频,点击哪个加载哪个
o 在设置m=1,即默认不加载视频的时候向播放器传递该视频的时间,单位:秒,也可以不传
w 在设置m=1,即默认不加载视频的时候向播放器传递该视频的字节数,也可以不传
g 视频直接g秒开始播放,这个功能类似跳过片头的功能,当然这个功能还可以用js来实现
j 视频提前j秒结束,跳过片尾的功能
k 提示点时间,如 30|60鼠标经过进度栏30秒,60秒会提示n参数指定的相应的文字,这是以|隔开的一个数字数组
这个是鼠标经过进度栏上一些关键点时显示一个提示框,这些点需要自行设置,点的样式可以在配置文件里ck.pm_start参数设置
n 提示点文字,跟k配合使用,各提示文字以|隔开,所以提示文字里不能有|,(如:提示点1|提示点2)
b 指定播放器是否进行交互,默认交互,b=1时不使用交互,所以在站外引用时需要设置ckplayer.xml里的里设置{b->1}
wh 初始化指定视频的宽高比,如wh:’16:9’,该功能在6.2以后的版本里方支持
ct 时间显示是否采用修正,默认2,自动判断,1是强制修正,0是不修正,该功能6.2后支持
头像

MSSQL 游标使用实例

DECLARE MyCURSOR CURSOR
FOR
select iGlideNum,sAccFlag,a.sDeptNo,sAccMan,ENT_Mobil,dAccDate,dSFinishDate from EG_SHL_ACCEPT as a,EG_SYS_ENTRY as e where sAccMan=ENT_Name and sAccFlag like '____x[3,4,5]'
OPEN MyCURSOR
declare @iGlideNum varchar(20)
declare @sAccFlag varchar(6)
declare @sDeptNo varchar(20)
declare @sAccMan varchar(10)
declare @ENT_Mobil varchar(20)
declare @dAccDate DateTime
declare @dSFinishDate DateTime
fetch next from MyCURSOR into @iGlideNum,@sAccFlag,@sDeptNo,@sAccMan,@ENT_Mobil,@dAccDate,@dSFinishDate
while(@@fetch_status=0)
begin
declare @iOverTime int
declare @NowDate DateTime
select top 1 @iOverTime=iOverTime from EG_SYS_PARAM
select @NowDate=getdate();
if cast(convert(varchar(10),@NowDate,120) as DateTime)> @dSFinishDate and cast(convert(varchar(10),@dSFinishDate,120) as DateTime)< (cast(convert(varchar(10),@NowDate,120) as DateTime)+@iOverTime)
begin
if @dSFinishDate+@iOverTime<cast(convert(varchar(10),@NowDate,120) as DateTime)
begin
insert into EG_DB_WARNINGINFO(iGlideNum,sWarnNode,sWarnType,sWarnText,sWarnMan,sWarnObject,sWarnCategory,sDeptNo,sWarnWay) values(@iGlideNum,@sAccFlag,1,'你受理的项目('+@iGlideNum+')结办日期为'+convert(varchar(10),@dSFinishDate,120)+',现已超过超期警告办理时间,给予一张红牌警告,请尽快办理。','自动',@sAccMan,0,@sDeptNo,0)
insert into EG_DB_WARNINGBACK(sWarnText,sWarnMolOrMail,sWarnTpyes) values('你受理的项目('+@iGlideNum+')结办日期为'+convert(varchar(10),@dSFinishDate,120)+',现已超过超期警告办理时间,给予一张红牌警告,请尽快办理。',@ENT_Mobil,0)
end else
begin
insert into EG_DB_WARNINGINFO(iGlideNum,sWarnNode,sWarnType,sWarnText,sWarnMan,sWarnObject,sWarnCategory,sDeptNo,sWarnWay) values(@iGlideNum,@sAccFlag,0,'你受理的项目('+@iGlideNum+')结办日期为'+convert(varchar(10),@dSFinishDate,120)+',现已超期,给予一张黄牌警告,请尽快办理。','自动',@sAccMan,0,@sDeptNo,0)
insert into EG_DB_WARNINGBACK(sWarnText,sWarnMolOrMail,sWarnTpyes) values('你受理的项目('+@iGlideNum+')结办日期为'+convert(varchar(10),@dSFinishDate,120)+',现已超期,给予一张黄牌警告,请尽快办理。',@ENT_Mobil,0)
end
end
fetch next from MyCURSOR into @iGlideNum,@sAccFlag,@sDeptNo,@sAccMan,@ENT_Mobil,@dAccDate,@dSFinishDate
end
close MyCURSOR
deallocate MyCURSOR
头像

feifeicms出现[请从后台管理入口登录]解决方法

一、windows系统

我自己的解决方法的修改了php的session缓存目录,具体方法:

1.在windows或windows/system32找到php.ihi
2.找到session.save_path = c:\win\temp  修改为session.save_path =c:\tmp
3.给tmp文件夹everyone读写权限
二、第二种
A:windows主机默认的session目录为c:\windows\temp 请将该目录加上iis用户组的写入权限或user组的写入权限即可(可以通过php.ini查看你主机的session目录路径)。
B:Linux主机用户请检查你的php.ini里面的session目录是什么,加上写入权限一般(777)就可以了。
如是第二种还无法解决,则使用下面
VPS webmin环境,  我直接使用FTP工具,进入网站文件的这里  /Lib/ThinkPHP/  ,在这个文件夹下有个 ThinkPHP.php ,重新给它777权限,默认它已经不是777了,我们重新给与之,然后再去登入后台。
还有一种方法就是把网站文件里的/tmp 权限改成777  ,不过每次都要去改,纠结啊。改了就可以进,过一会就不能了,每次进都要改。。郁闷。老大也不出来讲一下!!
三、第三种
php的session保存目录满了 清理一下