最近帮客户服务器安全配置,同时升级php 5.2.17版本,因为客户程序用的是dedecms,登录后提交总是验证码不正确,其实只要是用了session认证的后台都会出现这个问题。
解决一:
data\session 保存不成功,原因是目录没有写权限(权限777);
解决二:
可以取消掉验证码,具体方法如下
实现的方法一共分为两步来进行:
代码如下:
打开 dede/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;' class="text" />
<img id="vdimgck" src="../include/vdimgck.php" alt="看不清?点击更换" align="absmiddle" style="cursor:pointer" />
</li>
解决方法三:
经几台机器测试,主要原因还是在php.ini的设置上。
大约900多行,有两个关于session的设置,采用默认的就可以,已经修改过的参照下面执行
;session.save_path = "/tmp"
session.cookie_path = /
本机和服务器上都测试过,修改了这两个参数后,再次登录dede,就会提示验证码不正确,改回默认,一切OK
经过分析,以前版本的php,zend会设置session的一些细节,但对于新版本,zend并不是怎么设置,所以大家也不要乱动了,发现问题解决问题。