织梦的后台登陆的时候为什么总是出现验证码错误,这个是什么原因呢?

织梦的后台登陆的时候为什么总是出现验证码错误,这个是什么原因呢?,第1张

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>

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

方法一:(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/)

方法一:检查权限

检查 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

  }

  >

把下面的这段代码去掉

<tr>

<td>验证码:</td>

<td width="100"><input name="verifycode" type="text" size="15" /></td>

<td><img src="verifycodeasp" alt="点击重新获取验证码" width="60" height="20" title="点击重新获取验证码" onclick="thissrc+=Mathrandom()"/></td>

</tr>

不过只是不显示了,但验证的功能还保留,因为验证的功能在后台,在log_inasp文件里

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

if($S_Code!=S_CheckCode){

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

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 织梦的后台登陆的时候为什么总是出现验证码错误,这个是什么原因呢?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情