织梦dedecms系统后台出错Character postion 686 item Error
如遇蓝奏网盘打不开lanzous替换成lanzoux尝试!
错误提示:Tag Character postion 1434, ‘item’ Error!
服务器环境:Apache/2.4.4PHP/5.5.3dedecms/v5.7
具体的原因没找到,断点跟踪代码发现:是这两个文件的问题
/admin/inc/inc_menu.php line 77/admin/inc/inc_menu_map.php line 134
解决方法:
删除这行代码:
或者下面两行代码对换下位置即把
改成
网站发布不了文章,提示更新附加表 `dede_addon17` 时出错,请检查原因!搜索了原因,发现很多人出现 这个问题,现在将修复方法公布如下:
系统可能是dede5.6,dede5.7,dede v5.7sp1等
出现问题一般为
1、发布文章时出现 把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给dedecms官方;
2、上传图片是出现 把数据保存到数据库附加表’dede_addonimages’时出错,请把相关信息提交给dedecms官方
3、第三方模型发布出现 更新附加表 `dede_addon17` 时出错,请检查原因!
原因是在dede_addonimages、addonimages 、dede_addon17等对应的里少了一个名为(body)的字段。
解决方法:
执行下面的SQL创建这个字段就不出现那个错误了:
方法为 点击后台系统-SQL命令行工具-运行SQL命令行:运行对应的SQL语句就行
1、 ALTER TABLE `dede_addonarticle` ADD `body` mediumtext
2、 ALTER TABLE `dede_addonimages` ADD `body` mediumtext
3、ALTER TABLE `dede_addon17` ADD `body` mediumtext
一定要找到对应的字段然后添加
今天我们把一个网站后台进行升级,由 DedeCMS 5.6 升级至 DedeCMS 5.7SP1 后,发现在文档列表不显示栏目和发布人信息。经过查找,发现可以通过以下两步方法进行解决。希望对遇到同样问题的朋友有一定的帮助。
一、清空/data/tplcache 文件夹中的所有缓存文件,清空后刷新后台,发布人就会显示了。
二、删除/data/cache/inc_catalog_base.inc 该文件,清空后刷新后台,类目就会显示了。
想要让DedeCMS采集文章后,直接导出成仅动态的类型,而不是未生成?按照下面步骤即可实现。
登陆FTP,寻找 dede/co_export.php 文件,找到如下代码:
//插入数据库
$rs=$dsql->ExecuteNoneQuery($indexSql);
if($rs)
{
$aid=$dsql->GetLastID();
$mainSql=str_replace(‘@aid@’,$aid,$mainSql);
$addSql=str_replace(‘@aid@’,$aid,$addSql);
$mainSql=ereg_replace(‘@([a-z0-9]{1,})@’,”,$mainSql);
$addSql=ereg_replace(‘@([a-z0-9]{1,})@’,”,$addSql);
$rs=$dsql->ExecuteNoneQuery($mainSql);
if(!$rs)
{
echo “导入 ‘$title’ 时错误:”.$dsql->GetError().”
”;
$dsql->ExecuteNoneQuery(“Delete From `arctiny` where id=’$aid’ “);
}
else
{
$rs=$dsql->ExecuteNoneQuery($addSql);
if(!$rs)
{
echo “导入 ‘$title’ 时错误:”.$dsql->GetError().”
”;
$dsql->ExecuteNoneQuery(“Delete From `arctiny` where id=’$aid’ “);
$dsql->ExecuteNoneQuery(“Delete From `$maintable` where id=’$aid’ “);
}
}
}
$dsql->ExecuteNoneQuery(“update `co_htmls` set isexport=1 where aid=’$exid’ “);
}
请将修改为如下代码(直接替换即可)
$dsql->ExecuteNoneQuery(“update `archives` set ismake=-1 where id=’$aid’ “);
最近把小站更新到v5.7 SP1版本,结果发现谷歌联盟和百度联盟的广告都不能显示。对比了一下之前版本的首页源码,发现更新后的系统中,广告代码双引号前均多了一个反斜杠。在网上搜了一下,没有找到解决方法,只好自己排查,终于发现了问题所在。我在这里把解决方法分享出来,让各位站长少走些弯路。
找到ad_add.php文件第30行,把这段代码:
复制代码
if($normbody[‘style’]==’code’)
{
$normbody=addslashes($normbody[‘htmlcode’]);
}
改成如下代码:
复制代码
if($normbody[‘style’]==’code’)
{
$normbody=$normbody[‘htmlcode’];
}
注:addslashes函数会在指定的预定义字符前添加反斜杠,主要是对一些特殊字符进行转义。
修改完后保存,然后上传到服务器,再添加的广告就能正常显示了。
因为反斜杠是在广告代码插入到数据库之前添加的,所以数据库中之前添加的广告代码不会变(反斜杠依然存在)。只要把之前添加的广告都删除,然后重新添加就可以了。当然,你也可以直接在数据库中手工把每个广告的反斜杠都去掉。
用dedecms 系统做网站的朋友特别多,dedecms功能强大,除了安全是一个问题外,tags标签静态化问题困扰很多朋友,湖哥为了解决一个网站的tags标签静态化问题找了很多文章,也试了很多次,终于在今天解决了这个问题:
1.dedecms版本 5.7 sp1 GBK
2.服务器:windows 2008 iis7
话不多说,开始!
目标:我们要使原来tags.php?/3qshop/ 变动为/tags/3qshop.html 并且为伪静态,为什么要为伪静态?因为我们的关键词(tags)太多,比真正静态节省空间。
那么我们要做如下工作,记得一步一步来哦!
第1步:
首先找到/include/taglib/tag.lib.php中,在87行找到
$row[‘link’]=$cfg_cmsurl.”/tags?”.urlencode($row[‘keyword’]);
将其修改为:
$row[‘link’]=$cfg_cmsurl.”/tags/”.urlencode($row[‘keyword’]).”.html”;
第2步:
修改分页代码部分
修改include/arc.taglist.class.php,找到分页函数,将其更换为:
注意:从429行 —->541行 用以下内容替换!
(提示:网上有文章中讲的以下代码中的”pageinfo”是错误的,应该为\”pageinfo\”,不然会有错误提示哦!已经代码测试OK!)
function GetPageListDM($list_len,$listitem=”info,index,end,pre,next,pageno”)
{
$prepage=””;
$nextpage=””;
$prepagenum=$this->PageNo – 1;
$nextpagenum=$this->PageNo + 1;
if($list_len==”” || preg_match(“/[^0-9]/”, $list_len))
{
$list_len=3;
}
$totalpage=$this->TotalPage;
if($totalpage <=1 && $this->TotalResult > 0)
{
return “共1页/”.$this->TotalResult.”条“;
}
if($this->TotalResult==0)
{
return “共0页/”.$this->TotalResult.”条“;
}
$maininfo=”共{$totalpage}页/”.$this->TotalResult.”条rn”;
$purl=$this->GetCurUrl();
$basename=basename($purl);
$tmpname=explode(‘.’, $basename);
$purl=str_replace($basename, ”, $purl).urlencode($this->Tag);
//var_dump($purl);exit;
//$purl .=”?/”.urlencode($this->Tag);
//获得上一页和下一页的链接
if($this->PageNo !=1)
{
$prepage.=”
rn”;
$indexpage=”
rn”;
}
else
{
$indexpage=”
rn”;
}
if($this->PageNo!=$totalpage && $totalpage>1)
{
$nextpage.=”
rn”;
$endpage=”
rn”;
}
else
{
$endpage=”
rn”;
}
//获得数字链接
$listdd=””;
$total_list=$list_len * 2 + 1;
if($this->PageNo >=$total_list)
{
$j=$this->PageNo – $list_len;
$total_list=$this->PageNo + $list_len;
if($total_list > $totalpage)
{
$total_list=$totalpage;
}
}
else
{
$j=1;
if($total_list > $totalpage)
{
$total_list=$totalpage;
}
}
for($j; $j<=$total_list; $j++)
{
if($j==$this->PageNo)
{
$listdd.=”
rn”;
}
else
{
$listdd.=”
rn”;
}
}
$plist=”;
if(preg_match(‘/info/i’, $listitem))
{
$plist .=$maininfo.’ ‘;
}
if(preg_match(‘/index/i’, $listitem))
{
$plist .=$indexpage.’ ‘;
}
if(preg_match(‘/pre/i’, $listitem))
{
$plist .=$prepage.’ ‘;
}
if(preg_match(‘/pageno/i’, $listitem))
{
$plist .=$listdd.’ ‘;
}
if(preg_match(‘/next/i’, $listitem))
{
$plist .=$nextpage.’ ‘;
}
if(preg_match(‘/end/i’, $listitem))
{
$plist .=$endpage.’ ‘;
}
return $plist;
}
第3步:
设置伪静态规则:
把以上内容保存为:web.config 放到网站根目录!
第4步:
生成文章,浏览!大功告成?错,有可能你会出现以下错误!
系统无此标签,可能已经移除!
你还可以尝试通过搜索程序去搜索这个关键字:前往搜索>>
如果你的浏览器没反应,请点击这里…
解决办法如下:
在网站根目录下找到tags.php 此文件,将以下代码替换掉:
$tag=trim($_SERVER[‘QUERY_STRING’]);
换成
$tag=strtolower(trim($_SERVER[‘QUERY_STRING’]));
出现这个问题的原因是IIS伪静态中文转码为UTF8,解决方法就是在tags.php中加入判断UTF8编码的语句,如果是则转换为GBK,这样就可以解决了
方法:
1.把以下代码加入到根目录下tags.php中的18行下面,也就是if(isset($tags[2])) $PageNo=intval($tags[2]);下面哦:
function is_utf8($tag)
{
if (preg_match(“/^([“.chr(228).”-“.chr(233).”]{1}[“.chr(128).”-“.chr(191).”]{1}[“.chr(128).”-“.chr(191).”]{1}){1}/”,$tag)==true || preg_match(“/([“.chr(228).”-“.chr(233).”]{1}[“.chr(128).”-“.chr(191).”]{1}[“.chr(128).”-“.chr(191).”]{1}){1}$/”,$tag)==true || preg_match(“/([“.chr(228).”-“.chr(233).”]{1}[“.chr(128).”-“.chr(191).”]{1}[“.chr(128).”-“.chr(191).”]{1}){2,}/”,$tag)==true)
{
return true;
}
else
{
return false;
}
}
2.在第25行上面加入以下语句,也就是在$tag=FilterSearch(urldecode($tag));上面加入,记得这里是上面哦!
if(is_utf8($tag)==1) { $tag=iconv(“utf-8″,”gbk”,$tag); }
这个作用就是调用上面的函数判断编码 如果是 utf8则转为gbk;
到此,tags伪静态问题全面完美解决!
用dedecms做了一个站,换服务器后,发现后台登录不了,显示一片空白,在网上找了些方法如:
找到:include/common.inc.php文件,打开,查找程序代码:
//error_reporting(E_ALL);
error_reporting(E_ALL || ~E_NOTICE);
替换为:
error_reporting(E_ALL);
//error_reporting(E_ALL || ~E_NOTICE);
但是不起作用,后台还是一片空白,也没有提示错误。
在一步一步排查下 发现include/common.inc.php文件中 含有
define(‘PINGRPC2’, 1);
include_once DEDEINC.’/ping.RPC2.php’;
原来是我在网站上加有ping插件惹的问题,注释掉后,网站正常了!
生成静态的时候,经常会遇到“模板文件不存在,无法解析文 档!”的问题。很多朋友试过论坛里很多方法,都是针对某些人可以解决,某些人的问题依旧,为什么呢?其实问题很可能确实是多种多样的,表现结果却是一样, 所以,问题的原因就不好找了。下面介绍一个方法方便定位错误的地方:s200.CN
直接去Include文件夹里搜索“模板文件不存在,无法解析文档”这串字符。找到以下五个文件:
arc.archives.class.php
arc.listview.class.php
arc.sglistview.class.php
arc.specview.class.php
arc.taglist.class.php
(1)如果是生成栏目时提示这个错,那么在arc.listview.class.php中
echo “模板文件不存在,无法解析文档!”;
修改成:echo “模板文件不存在,无法解析文档!.$tempfile” ;
这样,就能在生成静态文件的时候,确切的知道是哪个文档或者模板文件出错了:
(2)如果是生成文档页面出现这个错误提示,打开arc.archives.class.php这个文件,找到第484行。
修改一下报错的代码:echo “模板文件不存在,无法解析文档!”; Dedecms5.6使用教程 -js200.CN
修改成:echo “模板文件不存在,无法解析文档!” .$this->ArcID ;
这样可以返回第一个错误的文章的ID,于是,再生成时我得到了这个文章ID,打开这个文章编辑,发现这篇文章居然没有设置分类,应该是采集入库的时候没有设置分类,设置文档栏目后问题解决!
今天更新网站时dedecms系统时,遇到一个问题:DedeTag Engine Create File False 出现这样的提示。
其实这也不算是什么错误,我个人觉得最重要的一点就是根目录下没有给写权限。当然,我用的是Linux系统。我直接给了777权限之后就可以了。
第一种情况:站点、文件夹权限不足造成无法建立文件
这种情况的出现,一方面可能是Apache设置的读写权限较严格,另一方面原因可能是使用者通过服务器或FTP对一些文件夹设置了错误的读写权限造成。这时候,只需修改网站根目录或相关栏目的目录上修改权限为755即可解决。
解决办法:
第一步、定位出错的文件,即查找生成什么文件时出的问题。
方法:修改 include/dedetag.class.php文件,搜索”DedeTag Engine Create File False“,会找到以下代码
$fp=@fopen($filename,”w”) or die(“DedeTag Engine Create File False”);
修改成
$fp=@fopen($filename,”w”) or die(“DedeTag Engine Create File False:$filename”);
重新生成栏目或者文档时,即可提示当前文件信息。
第二步、检查是否有写入权限,windows服务器请给予写入权限,linux服务器请给予777权限。如果目录或者文件不存在,请手工建立。
常见的错误情况有:data目录没有写入权限,html静态文件目录没有写入权限,index.html首页静态文件没有写入权限。
此时在进行生成栏目或者页面HTML操作,即可顺利进行。
第二种情况:列表、频道、文章等命名规则未填写或填写错误
此种情况较为少见,因为初级用户一般不会去修改这些东西,情况可以大致分为:
命名规则未填写(即为空)
解决方法:只需填好相应的规则即可,重新选择栏目类型,也可以快速自动填写。
命名规则中含有非法字符
解决方法:将非法字符替换或删除。
命名规则设置错误
例如:命名列表页为{typedir}/{tid}.html,这种命名方式对列表只有一页的栏目是正常的,如果列表是两页或两页以上时,由于进程冲突,生成栏目就会出现 DedeTag Engine Create File False 的提示。
解决方法:此时只需要增加{page}变量到名称中即可解决问题。
生成文件的层次不对
例如设置列表文件要在列表{typedir}目录下,不能向下再有目录比如:{typedir}/list{tid}{page}.html是对的,可以生成但是如果设置为 {typedir}/list/{tid}{page}.html这样将会出错
第三种情况:发布文章后将栏目改为了“外部链接”类型
在某个栏目里发了几篇文章,后来把这个栏目改成外连接了,更新文档时,系统还会更新这个栏目下的那几篇文章,但地址是外连接,所以无法生成文件,由此产生DedeTag Engine Create File False提示
解决方法:把栏目改回的目录,把文章删除,再改回外部链接类型。
默认织梦的首页没有设置高亮属性,只要其他栏目可以。以下代码可以解决这个问题:
复制代码
(@me==””)? @me=” class=’hover'”:@me=””;{/dede:field}> 主页
{dede:channel type=’top’ row=’10’ currentstyle=”
“}
{/dede:channel}
以上蓝色加粗的代码就是判断当前栏目是否是首页,如果是首页则加上class=’hover’,否则就不加,以此来达到想要的效果。
论坛上很多人都反馈说在后台添加新变量的时候会出现 “Request var not allow!” 的BUG错误,本文主要就是介绍如何去解决这个问题!下面看具体操纵:
在DEDE根目录打开 include/common.inc.php 文件,查找到以下内容:
//检查和注册外部提交的变量
复制代码
function CheckRequest(&$val) {
if (is_array($val)) {
foreach ($val as $_k=>$_v) {
CheckRequest($_k);
CheckRequest($val[$_k]);
}
} else
{
if( strlen($val)>0 && preg_match(‘#^(cfg_|GLOBALS)#’,$val) )
{
exit(‘Request var not allow!’);
}
}
}
将以上内容替换成以下内容:
//检查和注册外部提交的变量
复制代码
function CheckRequest(&$val) {
if (is_array($val)) {
foreach ($val as $_k=>$_v) {
if($_k==’nvarname’) continue;
CheckRequest($_k);
CheckRequest($val[$_k]);
}
} else
{
if( strlen($val)>0 && preg_match(‘#^(cfg_|GLOBALS)#’,$val) )
{
exit(‘Request var not allow!’);
}
}
}
修改完了之后保存,再去后台试试添加新变量。
本文详细分析了DEDECMS后台无法登陆并跳转回登陆界面的解决方法。分享给大家供大家参考。具体方法如下:
一、问题:
网站已经运行了很久,前些天突然在登陆的时候提示密码不正确,而且不管怎么试,都是无法登陆.
二、解决方法:
于是在网上找来了重置密码的脚本,几经测试,终于重置了密码.之前出现过验证码出错的问题,关闭了验证码功能.于是在万分高兴开始登陆的时候发现,每次登陆都卡在这里,然后跳回登陆界面.
地址为:login.php?gotopage=/dede/index.php
在登陆界面输入账号密码后会有3-5秒的卡顿才会进入下面的页面,然后再卡顿3-5秒就跳回登陆界面.
对此,列出几点供大家参考:
1、修改DATA和sessions的目录属性为可写,即(777).
2、清空sessions内除index.html以外的所有文件.
3、清除IE缓存:更换浏览器,火狐,谷歌.
4、在include/config.base.php里修改参数.
5.最重要的一个原因,当你网站空间不够用或不足时,会有此种现象,便当虚拟主机后台检查下还有多少剩于空间可用吧!
希望本文所述对大家的dedecms网站建设有所帮助。
不知道用dedeCMS的问答系统的朋友们有木有遇到”问题管理”和”答案管理”出现404页面的情况,如果你的服务器是linux系统,估计都遇到过的。大家都知道linux系统对大小写是非常敏感的,不想win系统不区分。
好吧废话少说,解决问题重要。
问题的原因是ask\control\admin\answer.PHP和ask\control\admin\asktype.php这2个文件中有一行$this->lurd=new lurd,调用include/lurd.class.php文件。lurd 是小写,lurd.class.php是大写写,导致文件无法找到。
解决办法:先确认并修改ask\control\admin\answer.php和ask\control\admin\asktype.php这2个文件中的$this->lurd=new lurd均为大写就行了。
如果服务器上禁用了fsockopen函数,则无法使用保存远程图片到本地的功能,只需要替换一下函数就可以了。
找到/include/dedehttpdown.class.PHP 第507行
复制代码
$this->m_fp=@fsockopen($this->m_host, $this->m_port, $errno, $errstr,10);
替换为
复制代码
$this->m_fp=@stream_socket_client($this->m_host . ‘:’ . $this->m_port, $errno, $errstr,10);
由于DEDECMS对系统安全做的比较好,即使在后台开放了匿名投稿前台也无法匿名投稿,所以要匿名投稿需要修改一些代码。
打开member/soft_add.PHP找到
//考虑安全原因不管是否开启游客投稿功能,都不允许用户投稿
复制代码
CheckRank(0,0);
if($cfg_mb_lit==’Y’)
{
ShowMsg(“由于系统开启了精简版会员空间,你访问的功能不可用!”,”-1″);
exit();
}
注释掉以上代码即可实现匿名软件投稿
织梦dede后台采集数据库批量替换安全确认码不显示完美解决方法如下。
dede后台安全验证码不显示
给你快捷的方法,ftp中找到在后台目录文件夹中找到sys_data_replace.php文件,搜索以下代码(大概在45行左右),按下面注释掉即可
//if($validate==”” || $validate !=$svali)
//{
// ShowMsg(“安全确认码不正确!”, “javascript:;”);
// exit();
// }
这样即可完美解决,dede后台采集数据库内容批量替换,验证码就不用填写,直接可以开始替换数据。
大家在更新栏目或者文档的时候 经常碰到“dedecms模板文件不存在 无法解析文档”,出现这个问题,一般是你的模板没有选对导致的。
如何了解自己的模板情况呢:
1、可以通过模板的命名来大概区别,不同的设计师对模板的命名有差别,比如默认的织梦模板列表模板是list_article.htm 图集模板是list_image.htm ,对模板标签比较了解的,也可以打开模板查看下标签的写法就大概明白了。如果无法判断就尝试用方法2.
2、方法1还是无法找到正确的模板,可以通过一个一个模板的更换尝试,这样比较浪费点时间,不对才菜鸟来说,是最好的办法了。
模板的选择主要是列表模板、文章模板,如下图:
温馨提示:大家最好去了解下织梦模板的常规命名名称,也许对您有帮助,不同织梦模板制作者对命名略不同。
织梦系统我一直都是在用utf8版的,最近看重一个模板,就买了,可是上传到服务器发现系统基本设置下面不能保存中文,网上没找到很好的方法,自己看了一下,发现是网站编码的问题,我utf8的织梦在php5.4下就没问题,所以,要给表单中的字符转码。
后台-系统基本参数无法保存中文 修改方法:
dede\templets\sys_info.htm里面搜索
htmlspecialchars($row[‘value’])
替换成
htmlspecialchars($row[‘value’],ENT_COMPAT ,’GB2312′)
如果发现还有其他页面,也没办法保存中文,最好在dreamweaver下整站搜索htmlspecialchars($row[‘value’]),然后批量替换成htmlspecialchars($row[‘value’],ENT_COMPAT ,’GB2312′),这样就能保证系统的表单没问题。
但是这个修改的方法,对编辑器中的中文没办法,还要修改编辑器,方法为:
include/ckeditor/ckeditor_php5.php文件
找到代码
$out=“\n”;
改成:
$out=“\n”;
还有标签也不显示,修改方法为:
1、dede/article_add.php 和 dede/article_edit.php将
$title=htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
改成
$title=htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,’GB2312’);
这些都没问题后,发现 核心-批量维护-tag标签管理里面的中文标签全部都不显示了,真是麻烦,修改方法:
打开/dede/templets/tags_main.htm
找到:
$fields[‘tag’]=htmlspecialchars($fields[‘tag’]);
替换为
$fields[‘tag’]=htmlspecialchars($fields[‘tag’],ENT_COMPAT ,’GB2312′);
这样修改,tag标签就显示了。
这样一修改,在php5.4下的gbk版织梦就不会出现编码的问题了。
站长用织梦做站时常常发现织梦自由列表有个致命的问题:
即修改“不使用目录默认主页”就永远不会自己勾选啦
打开这个文件 makehtml_freelist_action.php
搜索下面代码,也在最后一行
$dsql->ExecuteNoneQuery(“Update `dede_freelist` set nodefault=’1′ where aid=’$startid’;”);
修改成
$dsql->ExecuteNoneQuery(“Update `dede_freelist` set nodefault=’0′ where aid=’$startid’;”);
下面这个教程是错误的
打开dede\templets \freelist_add.htm找到113行,把value=”1″改为value=”0″。
再打开dede\templets \freelist_edit.htm找到89行,把value=”1″改为value=”0″。
这样“不使用目录默认主页”就永远不会自己勾选啦。
今天发布图片集时,上传图片提示FILEID:X错误,缩略图显示为红色Error,前几天还正常的,可以确定是这几天修改了系统文件造成的,dede图集后台上传图片报错,提示红色FILEID错误的处理办法。
dedecms图集后台上传图片报错处理
仔细检查是UTF-8版本BOM格式造成的,检查dedecms系统文件include/common.inc.php和/data/common.inc.php的文件格式,用dreamweaver打开以上文件检查,ctrl+j打开编码查看,去掉上图中红框里“包括unicode签名bom”前面的勾,保存,替换原来文件,问题解决。
UTF-8编码的朋友,注意将格式调整为UTF-8 无 BOM格式,GBK编码的朋友,注意将格式调整为ANSI(使用NotePad++,菜单栏有一格式菜单,打开即可调整文件格式,当然也可以选择DW,Editeplus 云云)
网上看到很多朋友遇到使用织梦程序一段时间后,发现上传图集时候老是失败,提示提示FILEID:X错误,缩略图显示为红色Error下面截图错误:
这问题今天也让我头疼了半天,好好的怎么就出现这问题了,我最近好像没修改过啥文件了,最后找资料整理出了解决办法,分享给遇到该问题的朋友:分两步:
第一步:查看一下你的include/common.inc.php 的文件格式UTF-8编码的朋友,注意将格式调整为UTF-8 无BOM格式,GBK编码的朋友,注意将格式调整为ANSI(使用NotePad++,菜单栏有一格式菜单,打开即可调整文件格式,当然也可以选择DW,Editeplus 云云)
第二步:给大家提供一个缩略图修复文件,保存为a.php,放在网站根目录访问下就可以了。
代码(红色部分)如下:
//remove the utf-8 boms
//by magicbug at gmail dot com
if (isset($_GET[‘dir’])){ //config the basedir
$basedir=$_GET[‘dir’];
}else{
$basedir=’.’;
}
$auto=1;
checkdir($basedir);
function checkdir($basedir){
if ($dh=opendir($basedir)) {
while (($file=readdir($dh)) !==false) {
if ($file !=’.’ && $file !=’..’){
if (!is_dir($basedir.”/”.$file)) {
echo “filename: $basedir/$file “;
echo checkBOM(“$basedir/$file”).”
”;
}else{
$dirname=$basedir.”/”.$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}
function checkBOM ($filename) {
global $auto;
$contents=file_get_contents($filename);
$charset[1]=substr($contents, 0, 1);
$charset[2]=substr($contents, 1, 1);
$charset[3]=substr($contents, 2, 1);
if (ord($charset[1])==239 && ord($charset[2])==187 && ord($charset[3])==191) {
if ($auto==1) {
$rest=substr($contents, 3);
rewrite ($filename, $rest);
return (“BOM found, automatically removed.“);
} else {
return (“BOM found.“);
}
}
else return (“BOM Not Found.”);
}
function rewrite ($filename, $data) {
$filenum=fopen($filename, “w”);
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
将代码另存为.php,放在网站根目录下运行该文件就可以了。
运行完毕后刷新后台,上传图片,就成功了!
运行后记得更新下缓存:
☉首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制(了解更多)
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品织梦源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站织梦程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(330921598)进行交流。
前两天,在更新网站,发布文章上传图片的时候,遇到Upload filetype not allow !图片上传出错的情况!相信接触织梦程序的朋友几乎都会遇到这种情况吧!遇到dede织梦上传图片显示“Upload filetype not allow !”出错的情况改怎么办?要如何处理呢?
下面乐晨针对自己解决的方法向刚接触织梦dedecms的新手朋友讲解一下,解决方法如下
第一步:找到根目录“include”这个文件夹,点击进去
第二步:找到“include”这个文件下的“uploadsafe.inc.php”文件,点击打开
第三步:在打开“uploadsafe.inc.php”文件的大概第45行:找到$imtypes=array,并将其改为$imgtypes=array
最后一步:把更改好的uploadsafe.inc.php文件上传到“include”这个文件下就可以解决了!