dede后台去掉验证码还是不能登录
dedecms后台验证有时间输入总是不对,有时候却不显示,而输入验证码无疑是一个麻烦的过程,那么我们怎么样来去除后台验证码,实现输入帐号密码直接登录呢?我来为大家介绍一下:
让人感到烦恼的情况出现了!!!
如果你的网站管理系统已经升级到了dede56以上版本,那么织梦管理后台验证码不显示这个情况也非常容易解决,在DedeV56新版中,统一将验证码的有效设置系统→[验证码安全设置]里,可以设置哪些地方启用验证码,哪些地方不启用。还可以设置验证码类型,比如数字,英文与单词。 但之前的版本在系统设置里只可以设置评论是否需要验证码,那么有没别的办法呢?
其实只要用心你就会发现,早后台参数里修改验证参数,其实就等于修改网站内部的一个文件,只是在后台操作的选项有限,没有提供更多的修改接口,其实很多东西只是官方觉得没什么必要修改,所以才没在后台提供修改的入口,那么我们不妨找到验证的配置文件进行修改,那么我们可操作的权限就很多了。在后台[验证码安全设置]里,说修改后的保存实际上是修改了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删除即可,这样就去掉了织梦管理后台验证码,也就不必去进行繁琐的设置。
造成HTTP-500错误,可能存在的原因
1、运行的用户数过多,对服务器造成的压力过大,服务器无法响应,则报HTTP500错误。减小用户数或者场景持续时间,问题得到解决。
2、该做关联的地方没有去做关联,则报HTTP500错误。进行手工或者自动关联,问题得到解决。
3、录制时请求的页面、等,在回放的时候服务器找不到,则报HTTP500错误,若该页面无关紧要,则可以在脚本中注释掉,问题将会得到解决。例如:有验证码的情况下,尽管测试时已经屏蔽了,但是录制的时候提交了请求,但回放的时候不存在响应。
4、参数化时的取值有问题,则报HTTP500错误。可将参数化列表中的数值,拿到实际应用系统中进行测试,可排除问题。
5、更换了应用服务器(中间件的更换,如tomcat、websphere、jboss等),还是利用原先录制的脚本去运行,则很可能报HTTP500错误。因为各种应用服务器处理的机制不一样,所录制的脚本也不一样,解决办法只有重新录制脚本。
6、Windowsxp2 与ISS组件不兼容,则有可能导致HTTP500错误。对ISS组件进行调整后问题解决。
7、系统开发程序写的有问题,则报HTTP500错误。例如有些指针问题没有处理好的,有空指针情况的存在。修改程序后问题解决。
8、如果测试中所进行的操作涉及到数据库,如插入数据操作,若大数据量的情况下导致数据库中表空间已满,或者数据库连接池较小无法满足数据的存取等,都有可能导致HTTP500错误。调整数据库、修改连接池大小,问题解决。
你的版本是多少,解答如下:
方法一:(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/)
织梦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目录试试。
为了方便大家解决问题,在此整理了三个经典的解决方案。
注:执行方案一和方案二的前提是支持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删除即可。
个人觉得要不要验证码都无所谓
0条评论