DEDECMS 原先装过dedecms 卸载了,不过现在刚装好DEDECMS 可是一直提示 验证码错误 后台登不上去

DEDECMS 原先装过dedecms 卸载了,不过现在刚装好DEDECMS 可是一直提示 验证码错误 后台登不上去,第1张

方法一:检查权限

检查 data/session 目录是否有写入权限(权限777),没有写入权限的话会导致 session 保存不成功,会提示验证码错误。(一般为此种情况

方法二:删除验证码

打开 dede/loginphp 文件

找到:

if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){

  ResetVdValue();

  ShowMsg('验证码不正确!','loginphp',0,1000);

  exit;

  }

修改为: 

if(false){}

打开 dede/templets/loginhtm 文件,删除以下代码: 

<php

  if(preg_match("/6/",$safe_gdopen))

  {

  >

  <dt>验证码:</dt>

  <dd><input id="vdcode" type="text" name="validate" style="text-transform:uppercase;"/><img id="vdimgck" align="absmiddle" onClick="thissrc=thissrc+''" style="cursor: pointer;" alt="看不清?点击更换" src="/include/vdimgckphp"/>

  <a href="#" onClick="changeAuthCode();">看不清? </a></dd>

  <php

  }

  >

自从用了dede之后感觉一切都挺好,就是有个很奇怪的事情,不知道同样用dede的童鞋有没有遇到的,登陆的时候老是出现“验证码不正确”的提示,输入第一次说不正确倒罢了,连续 输入四五次都这样的提示我就纳闷了,换了几个主流浏览器后发现,只有在IE浏览器可以正常登录后台,chrome和Firefox都无法登陆,当然像清楚网页缓存、删除COOKIES这种常规操作都是一次一次的去做了,都做了但还是登陆失败验证码不正确。

不知道IE浏览器有毛病还是什么的,用IE浏览器登陆到后台之后老是页面要停顿很久才可以点击页面,如果立即就去点,页面就会卡死,本来想着这样也就凑活,毕竟还可以登录进去后台去管理,就一直这么用着。

但是天不随人愿,今天正在后台进行操作的时候,又提示让登录,但是这次连在IE上都无法登录了,一直显示验证码不正确,气死人!

没办法,网站刚刚建好就无法进入后台无法进行网站更新和一些设置是一件很着急人的事,马上百度搜索下这个问题,既然也有很多人和我的这个情况差不错,用dede的人还挺多,说什么方法的人都有。

在这里大致的概括一下网上所提供的方法:

1、有人说取消验证码,也就是替换 loginphp中的if($validate==” || $validate != $svali)然后再改几个文件的相关模块(这个已经试过了不行,取消了验证码之后就陷入了死循环登录页面,然后这个问题就又在网上无解了……不知道说这个方法的人正真碰到过这个问题没有,还是问题有所不同)。

2、还有一种说法是用ftp进入你的dedecms程序空间,把data/session目录下除indexhtm外的其它session文件都删除,我试了,还是失败!

3、有人说是服务器配置问题,修改phpini 文件,但是当我终于找到了空间提供商,人家说服务器端不单独改东西的,因为出于安全考虑,所有的服务器端修改都禁用了,其实这也不能怪空间提供商,让我们自己想想也不可能因为你这一个小问题而去更改整个服务器的配置。

4、其实在刚开始还可以用IE登陆进去的时候我已经看到了在后台管理的“ 系统— 系统安全—把后台登陆前那个勾去掉“,以为这样就不用验证码了,结果我悲剧了,出现了像第一种说法一样的登录死循环页面然后我就只有把所有文件全删掉,然后重新安装了dede的程序,又重做(还好当初设置的东西还不是太多,损失不大)!

最终经过不断的寻找不断的更改终于找到了解决方法正常登陆了,下面就直接将这个方法公布出来,希望能帮到碰到同样问题的同学们。

方法是:使用FTP登录,修改dede57根目录下/data/sessions/文件夹权限修改为777,然后要应用于以下所有文件和文件夹,问题搞定!

原文链接:http://hibaiducom/%D3%EE%D5%B0%C9%CC%C3%B3%B9%AB%CB%BE/blog/item/c5d1ff392c0db7c3a2cc2bcdhtml

1、空间满了。我遇到的验证码错误都是空间满了,如果也遇到验证码错误的问题,可以先检查是否空间满了。

2、用ftp进入你的dedecms程序空间,把data/session目录下除indexhtm外的其它session文件都删除,然后本地ie浏览器清除缓存。重新登录dedecms后台试试看。

3、可以取消掉验证码,具体方法如下:

实现的方法一共分为两步来进行:

打开 loginphp 找到:

if($validate=='' || $validate != $svali) 

替换为: 

if( false )

然后,在模板dede/templets/loginhtm里去掉以下验证码的具体HTML代码:

<li><span>验证码:</span>

<input name="validate" type="text" id="vdcode” style="width:50px;text-transform:uppercase;" />

<img id="vdimgck" src="/include/vdimgckphp" alt="看不清?点击更换" align="absmiddle" style="cursor:pointer" onclick="thissrc=thissrc+''" />

</li>

织梦Dede后台验证码不显示解决方法,很多时候dedecms网站后台的验证码不显示,验证码不显示网站后台就没法登陆,常见的验证码后台不显示的情况有以下三种:

Dede后台验证码不显示情况一

Dede后台验证码不显示情况二

Dede后台验证码不显示情况三

那么以上三种方法我们应该如何解决织梦Dede后台验证码不显示?

通用解决方案---取消后台验证码功能

因为没有验证码 不能进后台 所以修改php文件源代码:

方法一:

打开dede/loginphp 找到如下代码

if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){

ResetVdValue();

ShowMsg('验证码不正确!','loginphp',0,1000);

exit;

}

第一行替换为 if(false){

好 问题解决 不输验证码后台直接进去

方法二

打开data/safe/incsafeconfigphp

把代码$safe_gdopen = '1,2,3,4,5,6,7'; 中的6,删除即可

Dede后台验证码不显示情况一分析

验证码需要GD库 请检查你的环境是否开启GD库

Dede后台验证码不显示情况二分析

验证码只显示背景 不显示字母

打开验证码生成文件 Include/vdimgckphp

找到

for($i=0;$i<$rndcodelen;$i++)

{

$bc = mt_rand(0, 1);

$rndstring[$i] = strtoupper($rndstring[$i]);

$c_fontColor = $fontColor[mt_rand(0,4)];

$y_pos = $i==0 4 : $i($font_size+2);

$c = mt_rand(0, 15);

@imagettftext($im, $font_size, $c, $y_pos, 19, $c_fontColor, $font_file, $rndstring[$i]);

$lastc = $rndstring[$i];

}

Imagettftext()函数没有成功的执行导致了验证码只显示背景 不显示字母

具体原因为 字体文件路径不对解决方法

1确认include/data/fonts/ 里面存在字体文件 默认为ggbittf

2在for($i=0;$i<$rndcodelen;$i++) 上一行 加上如下代码:

$font_file= str_replace("\\","/",$font_file);

即把字体文件路径中反斜杠替换成斜杠 因为我们知道反斜杠有转译字符的功能,

$font_file 路经大体为 盘符:\appserv\www 系统错误的把反斜杠 当作转义用了 导致$font_file也就不是一个路径了 所以Imagettftext()函数总是返回错误

加上$font_file= str_replace("\\","/",$font_file);即可解决

Dede后台验证码不显示情况三分析

Include/data/words/wordstxt 文件不存在

解决方案1 拷贝一个进去

2找到代码 'word_type' => (int)$safe_codetype, // 1:数字 2:英文 3:单词

换成'word_type' =>1 (或2) 既验证码为数字或英文

Dede后台验证码不显示 全部情况解决 如果原来可以显示后来取消验证码后再设置就无法显示,可以通过覆盖data与include目录试试。

你的版本是多少,解答如下:

方法一:(http://houdunwangcom/lessonhtml)

php 54没有session_register方法,所以需要在include/userloginclassphp中加入以下代码  

functionsession_register(){

    $args= func_get_args();

    foreach($argsas$key){

         $_SESSION[$key]=$GLOBALS[$key];

    }

}

方法二:

由于php 54没有session_register方法。

找开include/userloginclassphp文件,查找以下内容:

@session_register($this->keepUserIDTag);

$_SESSION[$this->keepUserIDTag] = $this->userID;

@session_register($this->keepUserTypeTag);

$_SESSION[$this->keepUserTypeTag] = $this->userType;

@session_register($this->keepUserChannelTag);

$_SESSION[$this->keepUserChannelTag] = $this->userChannel;

@session_register($this->keepUserNameTag);

$_SESSION[$this->keepUserNameTag] = $this->userName;

@session_register($this->keepUserPurviewTag);

$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;

@session_register($this->keepAdminStyleTag);

$_SESSION[$this->keepAdminStyleTag] = $adminstyle;

PutCookie(‘DedeUserID’, $this->userID, 3600 24, ‘/’);

PutCookie(‘DedeLoginTime’, time(), 3600 24, ‘/’);

替换成

global $admincachefile,$adminstyle;

if(empty($adminstyle)) $adminstyle = ‘dedecms’;

//@session_register($this->keepUserIDTag);

$_SESSION[$this->keepUserIDTag] = $this->keepUserIDTag;

$_SESSION[$this->keepUserIDTag] = $this->userID;

//@session_register($this->keepUserTypeTag);

$_SESSION[$this->keepUserTypeTag] = $this->keepUserTypeTag;

$_SESSION[$this->keepUserTypeTag] = $this->userType;

// @session_register($this->keepUserChannelTag);

$_SESSION[$this->keepUserChannelTag] = $this->keepUserChannelTag;

$_SESSION[$this->keepUserChannelTag] = $this->userChannel;

//@session_register($this->keepUserNameTag);

$_SESSION[$this->keepUserNameTag] = $this->keepUserNameTag;

$_SESSION[$this->keepUserNameTag] = $this->userName;

//@session_register($this->keepUserPurviewTag);

$_SESSION[$this->keepUserPurviewTag] = $this->keepUserPurviewTag;

$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;

// @session_register($this->keepAdminStyleTag);

$_SESSION[$this->keepAdminStyleTag] = $this->keepAdminStyleTag;

$_SESSION[$this->keepAdminStyleTag] = $adminstyle;

PutCookie(‘DedeUserID’, $this->userID, 3600 24, ‘/’);

PutCookie(‘DedeLoginTime’, time(), 3600 24, ‘/’);

方法三:

文件夹权限问题

验证码无法显示和自动登出的原因是因为date文件夹和date下面的sessions文件夹的写入权限没有!

Sessions是记录(传送)登入信息的文件夹, 它无法生成文件, 自然就无法登陆而跳转回来。

解决办法如下:

修改date和date下面的sessions文件夹的权限,(可以尝试在FLASHFXP上修改,但可能会造成失败)

所以建议直接在主机的控制面板里面修改date和sessions的权限为777(writen)

方法四:

重新安装dedecms然后用数据库备份还原数据库

方法五(本人所用):

phpini配置文件中

sessionbug_compat_42 = 1

sessionbug_compat_warn = 1

这是php430以后才有的安全设置。出于安全的考虑php不建议你打开register_globals开关但若关闭了register_globals(默认)时,session变量将不被自动转换成全局变量此时传统的session变量注册方式session_register就失去意义了(session_register是把一个全局变量注册成session变量),因为访问session变量需要使用$_SESSION数组。因此只需直接操作$_SESSION数组就可以了,而无须再用session_register注册了。以免产生混乱开关sessionbug_compat_42 和 sessionbug_compat_warn 就是为了检查此类情况而设置的

更多问题到问题求助专区(http://bbshoudunwangcom/)

如果只是单纯的去掉验证码的话,只要吧die("<script>alert('对不起,你输入的认证码错误!');historyback();</script>");这句去掉或者注释掉就可以了,代码如下:

if($S_Code!=S_CheckCode){

//die("<script>alert('对不起,你输入的认证码错误!');historyback();</script>");

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » DEDECMS 原先装过dedecms 卸载了,不过现在刚装好DEDECMS 可是一直提示 验证码错误 后台登不上去

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情