前几天,给网站后台系统做了一下升级,可是升级后,后台一直不能登录成功,一直提示验证码不正确,就是登不进去,这个问题一直困扰我很久,试了很多方法都不行啊,在网上有些说什么V5.7的不好,很垃圾,过几天就好,我们做网站的不可能一直等着它好吧,这样就很被动了。
针对这种情况,我也在网上找了各种织梦(dedecms)后台登陆验证码错误或不显示解决的方法,常见的就是验证码输入明明正确但却提示不正确,或者压根不显示,说一下碰到这种情况的几种原因: ①、网站空间满了。 ②、清除浏览器的cookies,重启浏览器。 ③、织梦(dedecms)5.7版本转移data目录引起的。 ④、程序内/data/session目录权限设置问题。 ⑤、更好空间新的空间里php.ini里gd库配置问题。 ⑥、织梦(dedecms)版本程序升级操作不正确造成验证码提示不正确。 ⑦、网站程序出错,重新上传安装。 ⑧、网速不行,换个时间,等网速快了再试。 好了,引起dede织梦后台登陆验证码错误或者不显示的原因找到了,那么现在我们来总结一下解决办法,我测试过的方法如下,提供给大家参考下: 1、检查网站空间是否满了? 有些朋友遇到的验证码错误可能是因为空间满了,所以,如果你的网站一直很正常,也没被攻击过,没做过任何改动,遇到验证码错误的问题,可以先检查是否空间满了。 测试的方法是你可以随便上传FTP空间里一个文件,会有提示,你可以联系空间服务商。 如果是空间满了,就需要你登录服务器或ftp删除一些无用的文件,或者增加一下网站空间。 如果网站空间仍然剩余很多,验证码仍然显示不正确的话,那你就找找其他原因了(具体可查看马海祥博客《织梦(dedecms)后台登录验证码不显示或不正常的解决方法》的相关介绍)。 2、删除缓存文件 还有一种情况,可能是由于网站长期的使用,致使大量的缓存文件所致,对此,你可以登录服务器或用ftp进入你的dedecms程序空间,把data/session目录下,将除index.html以外文件全部删除就可以了。 然后,本地ie浏览器清除缓存,重新登录dedecms后台,再试试看。 3、转移data目录引起的 如果是5.7版本的转移data目录引起的,请改一下/include/vdimgck.php这个文件,这个文件里也调用了DATA里的文件也可以改路径,把带有这个 /../data 改成你现在的路径(此种请查看马海祥博客《安全正确转移网站data目录文件的具体方法步骤》的相关介绍)。 4、session目录权限设置问题 如果你发现/data/session/文件保存不成功,原因可能是目录没有写权限。 对此,你就要看session是否有写入权限,如果没有的话,给"internet来宾账户"添加写入权限,Linux的话,目录权限设置为"777"。 5、服务器的php.ini配置问题 设置服务器的php.ini:打开php.ini文件找到 ;session.save_path = "/tmp"
改写成: session.cookie_path = /
把extension=php_gd2.dll;将他前面的分号去掉。 6、版本升级后的漏洞所致 对织梦(dedecms)后台升级之后,验证码可以显示,不管怎么登陆都是错误,在网上找了很久的攻略,发现都不能解决,最后,发现在我的\data文件夹下除了sessions文件夹外,还有一个sessions_8ab3842ff8的文件夹,而这个文件夹中照样记录着您的登陆信息。 唯一不同的是,sessions中的记录验证码会和后台登陆验证码同步,sessions_8ab3842ff8却不会记录验证码,那么我们就只要需要记录同步到sessions文件夹即可。 解决方法: 打开include文件夹下的common.inc.php文件,找到以下代码: //Session保存路径
$enkey = substr(md5(substr($cfg_domain_cookie,0,5)),0,10);
$sessSavePath = DEDEDATA."/sessions_{$enkey}";
if ( !is_dir($sessSavePath) ) mkdir($sessSavePath);
if(is_writeable($sessSavePath) && is_readable($sessSavePath))
{
session_save_path($sessSavePath);
}
把 $sessSavePath = DEDEDATA."/sessions_{$enkey}";
改成: $sessSavePath = DEDEDATA."/sessions";
保存即可! 再登陆,就不会出现验证码不正确了! 7、直接去掉验证码 如果觉得这些方法实在太麻烦,也可以取消掉验证码,具体方法如下: 实现的方法一共分为两步来进行,首先,打开login.php找到: if($validate=='' || $validate != $svali)
替换为: if( false )
然后,在模板dede/templets/login.htm里去掉以下验证码的具体HTML代码: <li><span>验证码:</span>
<input name="validate" type="text" id="vdcode” style="width:50px;text-transform:uppercase;" />
<img id="vdimgck" src="../include/vdimgck.php" alt="看不清?点击更换" align="absmiddle" style="cursor:pointer" />
</li>
或者是在“验证码安全设置”里,说修改后的保存实际上是修改了data\safe\inc_safe_config.php这个文件,这是个配置文件。 比如:$safe_gdopen = '1,2,3,5,6'; 这个就是系统哪些地方开启验证码。与[验证码安全设置]界面是一对一的关系。 所以,如果当我们管理后台想关闭验证码(如果验证码无法正确输入,不支持GB库)的时候,只需要打开data\safe\inc_safe_config.php 将$safe_gdopen = '1,2,3,5,6'; 中的6删除即可,不必去进行繁琐的设置。 最后,如果以上方法均不适用的话,那么你就重新安装下对应版本的程序,然后将您的css及图片文件,模板文件,upload文件夹转移过来,最后还原数据库。
|