最近幫客戶(hù)服務(wù)器安全配置,同時(shí)升級(jí)php 5.2.17版本,因?yàn)榭蛻?hù)程序用的是dedecms,登錄后提交總是驗(yàn)證碼不正確,其實(shí)只要是用了session認(rèn)證的后臺(tái)都會(huì)出現(xiàn)這個(gè)問(wèn)題。
解決一:
data\session 保存不成功,原因是目錄沒(méi)有寫(xiě)權(quán)限(權(quán)限777);
解決二:
可以取消掉驗(yàn)證碼,具體方法如下
實(shí)現(xiàn)的方法一共分為兩步來(lái)進(jìn)行:
代碼如下:
打開(kāi) dede/login.php 找到:
if($validate=='' || $validate != $svali)
替換為:
if( false)
然后,在模板dede/templets/login.htm里去掉以下驗(yàn)證碼的具體HTML代碼:
代碼如下:
<li><span>驗(yàn)證碼:</span>
<input name="validate" type="text" id="vdcode" style='width:50px;text-transform:uppercase;' class="text" />
<img id="vdimgck" src="../include/vdimgck.php" alt="看不清?點(diǎn)擊更換" align="absmiddle" style="cursor:pointer" />
</li>
解決方法三:
經(jīng)幾臺(tái)機(jī)器測(cè)試,主要原因還是在php.ini的設(shè)置上。
大約900多行,有兩個(gè)關(guān)于session的設(shè)置,采用默認(rèn)的就可以,已經(jīng)修改過(guò)的參照下面執(zhí)行
;session.save_path = "/tmp"
session.cookie_path = /
本機(jī)和服務(wù)器上都測(cè)試過(guò),修改了這兩個(gè)參數(shù)后,再次登錄dede,就會(huì)提示驗(yàn)證碼不正確,改回默認(rèn),一切OK
經(jīng)過(guò)分析,以前版本的php,zend會(huì)設(shè)置session的一些細(xì)節(jié),但對(duì)于新版本,zend并不是怎么設(shè)置,所以大家也不要亂動(dòng)了,發(fā)現(xiàn)問(wèn)題解決問(wèn)題。