最近幫客戶服務(wù)器安全配置,同時升級php 5.2.17版本,因為客戶程序用的是dedecms,登錄后提交總是驗證碼不正確,其實只要是用了session認(rèn)證的后臺都會出現(xiàn)這個問題。
解決一:
data\session 保存不成功,原因是目錄沒有寫權(quán)限(權(quán)限777);
解決二:
可以取消掉驗證碼,具體方法如下
實現(xiàn)的方法一共分為兩步來進行:
代碼如下:
打開 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>
解決方法三:
經(jīng)幾臺機器測試,主要原因還是在php.ini的設(shè)置上。
大約900多行,有兩個關(guān)于session的設(shè)置,采用默認(rèn)的就可以,已經(jīng)修改過的參照下面執(zhí)行
;session.save_path = "/tmp"
session.cookie_path = /
本機和服務(wù)器上都測試過,修改了這兩個參數(shù)后,再次登錄dede,就會提示驗證碼不正確,改回默認(rèn),一切OK
經(jīng)過分析,以前版本的php,zend會設(shè)置session的一些細節(jié),但對于新版本,zend并不是怎么設(shè)置,所以大家也不要亂動了,發(fā)現(xiàn)問題解決問題。