织梦后台登陆验证码不显示
楼主你好
首先可能是由于空间(服务器)没有加载gd库扩展导致的,因为验证码都是它完成创建的图形。
解决办法:
1、如果你是独立的服务器,可以自己操作,那么你可以去phpini中搜索extension=php_gd2dll,把它前面的;号去掉,重启IIS或者apache等其他服务器。如果你是租用的空间,那么可以找空间商,让他帮你开启。
2、如果无法达到方法1中的条件,可以尝试着用这种方法解决一下,打开织梦data文件夹下的safe文件夹,打开inc_safe_configphp文件,然后把$safe_gdopen = '1,2,3,4,5,6,7';改为$safe_gdopen = '1,2,3,4,5,7';这样你登陆后台就不用验证码了。
其次,也可能是你的后台登录文件出错了,重新下载与你网站对应编码的dedecms最新系统包,找到 /dede/templets/loginhtm 文件进行替换。其中 dede为你网站后台目录文件夹名称。
最后还有一种可能是 /include/vdimgckphp 文件损坏或者没有权限,替换文件或者修改权限即可。
综上,最后两种情况导致验证码不显示的可能性很小,很多朋友都是GD库的问题才导致验证码不显示,楼主找空间商协商即可。
希望可以帮到你。 林羽凡
你的版本是多少,解答如下:
方法一:(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/)
为了方便大家解决问题,在此整理了三个经典的解决方案。
注:执行方案一和方案二的前提是支持GB库。
方案一:赋予sessions读、写、可执行的权限
修改根目录下/data/sessions/的sess_文件修改权限为777(命令:chmod 777 filename)。
方案二:将vdimgckphp替换法
替换前请将当前的vdimgckphp备份。找回相同版本的DEDE安装包,找到/include/vdimgckphp 文件,并用其替换当前站点的vdimgckphp文件。
方案三:去掉登陆验证码代码
如果上面的两种解决办法都解决不了,那就直接去掉验证码功能。是修改data\safe\inc_safe_configphp 配置文件。
方法:$safe_gdopen = ’1,2,3,5,6′; 这个就是系统哪些地方开启验证码。与[验证码安全设置]界面是一对一的关系。
所以,如果当我们管理后台想关闭验证码(如果验证码无法正确输入,不支持GB库)的时候,只需要打开data\safe\inc_safe_configphp 将$safe_gdopen = ’1,2,3,5,6′; 中的6删除即可。
个人觉得要不要验证码都无所谓
对止问题我自己已经解决了。(我是windows空间)
主要还是空间的题。
我当时遇到这个问题时,找遍了网上的资料,也拭了N遍都没有能解决我的问题。
我先也找过空间客服,可以那个客服也不在行,也可以说他根本就不懂。他说是我程序的问题。
我也尝试了好多次,从官网下载新的dedecms57-utf-8-sp1进行安装,但还是提示验证码错误,取消验证码之后,提示"成功登录,正在转向管理管理主页 "但是还是会返回到登陆页面。
之后我又重新换了一个客服,我把我的情况跟他说了,他从新给我开了一个空间,让我试试行不?我装上马上就行了,还是空间的问题。
所以我我的经历分享给大家,如果你在网上找了N多的次资都试过了,还是没有解决你的问题,那肯定是空间的问题。
不行就换个客服。
方法一:检查权限
检查 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 文件,删除以下代码:
<phpif(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
}
>
织梦后台登陆不上提示验证码不正确
1密码明明正确的,却无法登陆后台管理
解答:
此外,不管是新人,还是phper,都要注意的是:用户名和密码只能由 [a-z A-Z - _ @ ] 这些字符组成,不能是中文或其它的符号。
2验证码明明正确的,就是提示验证码不正确,而无法登陆后台。
解答:我就清空了一下cookies和IE临时文件夹,就可以,如果不行,看下面。
通过FTP进入根目录
修改/data/safe下的inc_safe_configphp
把$safe_gdopen值中的6去掉在登陆后台的时候就不会出现验证码了
比如这样:$safe_gdopen = '1,2,3,4,5,7';
如还是不行,进不了后台~ 虽然没有了验证码 但是 提示 密码错误。。怎么输入都是提示密码错误
别人都说是没有写入权限
回答识别密码不用写入权限
因此,确实是你密码错误
最新发现的可以解决DEDE模板网站后台登陆“验证码不正确”的办法
今天帮客户做的一个织梦CMS网站又出现登录DED后台,提示;验证码不正确。
找了很多解决办法都弄不好,最后用下面的方法终于弄好了。<br />
下面给出解决办法:
首先,进入data/session目录,将这个目录下的除indexhtm外的其它session文件全部删除掉。然后再把本地IE浏览器的缓存清理了干净。
最后重新进入织梦网站后台首页终于是正常的了。这是我解决织梦dedecms模板网站后台登录提示验证码不正确的最快捷解决办法。
比较常见的就是目录的权限设置问题,导致后台文件权限问题,详细要参考《DEDE织梦目录权限安全设置说明文档重要
dede57验证码不正确解决办法,提供一种我遇到的情况,/data/sessions无写入权限,给足权限即可。
[其他问题] 各种dede织梦后台登陆验证码错误或不显示解决方法汇总:
各种dede织梦后台登陆验证码错误或不显示解决方法汇总!常见的就是验证码输入明明正确但却提示不正确,或者压根不显
示。说一下碰到这种情况的几种原因:
①dede版本程序升级操作不正确造成验证码提示不正确
②更好空间新的空间里phoini里gd库配置问题
③网站空间满了
④专对57版本转移data目录引起的(此种请查看:如何将dede织梦data目录正确迁移及引起的问题解决方法)
⑤程序内/data/session目录权限设置问题
⑥清除浏览器的cookies,重启浏览器;
⑦网速不行,换个时间,等网速快了再试!
⑧网站程序出错,重新上传安装;
好了,引起dede织梦后台登陆验证码错误或者不显示的原因找到了,那么现在我们来总结一下解决办法。
1、如果是57版本的转移data目录引起的。
请改一下/include/vdimgckphp这个文件 这个文件里也调用了DATA里的文件也可以改路径,把带有这个 //data 改成你现
在的路径。
2、查阅资料后得知,session没有清除,去data/session目录下,将除indexhtml以外文件全部删除就可以了。
3、如果还是不行,看session是否有写入权限,如果没有的话,给"internet来宾账户"添加写入权限,Linux的话,目录权
限设置为"777"。4、设置服务器的phpini:打开phpini 文件找到;sessionsave_path = "/tmp" 改写成sessioncookie_path = /把
extension=php_gd2dll;将他前面的分号;去掉。
5、检查你的空间是不是满了,测试的方法是你可以随便上传FTP空间里一个文件,会有提示,你可以联系空间服务商。
6、直接去掉验证码:打开 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;'
class="text" /> <img id="vdimgck" src="/include/vdimgckphp" alt="看不清?点击更换" align="absmiddle"
style="cursor:pointer" />
</li>
或者是:在[验证码安全设置]里,说修改后的保存实际上是修改了data\safe\inc_safe_configphp 这个文件,这是个配置
文件。
比如:$safe_gdopen = '1,2,3,5,6'; 这个就是系统哪些地方开启验证码。与[验证码安全设置]界面是一对一的关系。
所以,如果当我们管理后台想关闭验证码(如果验证码无法正确输入,不支持GB库)的时候,只需要打开data\safe
\inc_safe_configphp 将$safe_gdopen = '1,2,3,5,6'; 中的6删除即可。不必去进行繁琐的设置。
如图
7、是修改include文件夹的vdimgckphp文件修改以下段落,
//Session保存路径
$sessSavePath = dirname(__FILE__)"//data/sessions/";
修改为//$sessSavePath = dirname(__FILE__)"//data/sessions/";
修改后,时管用时不管用,改回来也是这样的情况。如果把DEDE后台路径修改默认的DEDE文件夹,就不会出现验证码错误的
情况。最后如果以上方法均不适用的话,那么你就重新安装下对应版本的程序,然后将您的css及文件,模板文件,upload文
件夹转移过来。最后还原数据库。
只需要打开data\safe\inc_safe_configphp 将$safe_gdopen = '1,2,3,5,6'; 中的6删除即可,这样就去掉了织梦管理后台验证码,也就不必去进行繁琐的设置。
0条评论