Dedecms验证码无法显示的解决方法BOM

悟途网 2013年05月05日 22:22 阅读()
字号 (A- A+)

用Dedecms5.7 UTF-8版本建的一个站,用了挺长一段时间了,昨晚采集了一些文章之后,再登录后台,发现验证码没法显示了!!!于是百度了一下找找解决方法,发现出现这种情况还挺多的,然后方法也有好多种。我这收集一下这些方法,总有一个能解决的,呵呵!

图片不显示,这应该是很多站长朋友们最长遇到的一个问题,本地测试明明好好的,为什么传上空间或者服务器上验证码就无法显示了呢,这可能是由于没有加载gd库扩展所引起的,那么怎么解决呢?

方法一:

如果你是独立的服务器,可以自己操作,那么你可以去你服务器PHP安装目录下找到php.ini(如果是用安装了phpStudy,那个php.ini是放在C:\Program Files\phpStudy\PHP5目录下),打开搜索extension=php_gd2.dll,把它前面的;号去掉,重启IIS或者apache等其他服务器。如果你是租用的空间,那么可以找空间商,让他帮你开启。

Dedecms验证码无法显示的解决方法

Dedecms验证码无法显示的解决方法

方法二:

如果你使用的是织梦utf8版本的,可以尝试着这种办法,找到data文件夹下的common.inc.php,使用非windows自带文本编辑器,推荐使用emeditor,打开此文件,然后找到右下角,如果是带签名的话,保存为不带签名的,safe文件夹下的inc_safe_config.php也要保存为不带签名的。

Dedecms验证码无法显示的解决方法

方法三:

如果你的网站是UTF-8编码的,当你用windows自带的记事本编辑网站文件,保存后就会被自动加上了bom头 (BOM: Byte Order MarkUTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行)

所以就得把文件的bom头全部清除,验证码就会正常显示出来。我这给出一个批量删除网站文件bom头的php代码。

使用方法: 下载bom文件或新建一个php文件,把下面的php代码粘贴到你新建的php文件,随便保存一个文件名,例如:bom.php 。把bom.php文件复制到你网站的根目录下,在浏览器上打开它:http://你网站网址/bom.php就会自动帮你删除网站的所有文件带有的bom头。

*******************************

<?php

header("Content-Type:text/html; charset=utf-8");

if (isset($_GET['dir'])){ //设置文件目录

$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 "文件名称: $basedir/$file ".checkBOM("$basedir/$file")." <br>";

}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 ("<font color=red>发现BOM并且已自动删除</font>");

} else {

return ("<font color=red>发现BOM</font>");

}

}

else return ("没有发现BOM");

}

function rewrite ($filename, $data) {

$filenum = fopen($filename, "w");

flock($filenum, LOCK_EX);

fwrite($filenum, $data);

fclose($filenum);

}

?>

****************************

方法四:

如果你只是后台登录的验证码无法正常显示的话,那么你可以选择取消登录时要输入验证码,打开织梦data文件夹下的safe文件夹,打开inc_safe_config.php文件,然后把$safe_gdopen = '1,2,3,4,5,6,7';改为$safe_gdopen = '1,2,3,4,5';这样你登陆后台就不用验证码了。

Dedecms验证码无法显示的解决方法

方法五:

权限问题:修改根目录下data--sessions的目录权限为777就OK了!

热门文章
随机推荐
怎么删除dedecms5.7友情链接中默认分类及链接

怎么删除dedecms5.7友情链接中

删除dedecms5.7友情链接中默认分类及链接,dedecms5.7相比...

修改DEDECMS上传或下载附件按年月保存

修改DEDECMS上传或下载附件按

DEDECMS系统默认的图片附件是按年月日保存的,即如果你...

织梦tag标签怎么显示每个tag相应的文章数量

织梦tag标签怎么显示每个

有些时候我们想实现类似于wordpress那样的tag,就是在显...

DEDECMS首页调用栏目简介的方法

DEDECMS首页调用栏目简介的方

DEDE首页调用栏目简介做企业简介的方法:一句简单的代...

Dedecms的文章来源添加网址链接功能

Dedecms的文章来源添加网址链

添加来源网址功能,说白了就是在后台和前台发表文章...

怎么获得DEDECMS当前所在的文档目录和文档的URL

怎么获得DEDECMS当前所在的文

怎么获得DEDECMS当前所在的文档目录的URL,动手改装一下...

织梦dedecms模板调用全站相关文章的方法

织梦dedecms模板调用全站相关

文章页如果调用相关文章是对优化有好处的,但怎么写...

dedecms限制文章页上一篇与下一篇文章标题字数

dedecms限制文章页上一篇与下

dedecms限制文章页上一篇与下一篇文章标题字数,上一篇...