讓你輕松解決建站問題
近期發(fā)現(xiàn)一些空間運(yùn)行一段時(shí)間后,出現(xiàn)驗(yàn)證碼無法驗(yàn)證,即:驗(yàn)證碼輸入正確的,但提示錯(cuò)誤。
在本地和其它空間上進(jìn)行調(diào)試,程序是沒有問題的。
經(jīng)過反復(fù)在出問題的空間上調(diào)試,發(fā)現(xiàn)他們空間竟然無法保存session。顯示錯(cuò)誤語句是session_start(); 詳細(xì)錯(cuò)誤信息如下:open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/www/) 是空間保存session的默認(rèn)路徑/tmp沒有了權(quán)限,因?yàn)槿绻J(rèn)不設(shè)置session保存路徑, session是保存在網(wǎng)站根目錄tmp里的,出現(xiàn)這個(gè)問題的原因應(yīng)該是服務(wù)器的配置改變了,去掉了tmp的訪問或修改權(quán)限,所以導(dǎo)致session讀取和保存出錯(cuò)。
解決方法一:聯(lián)系服務(wù)商給/tmp目錄設(shè)置上權(quán)限。
解決方法二:自定義session的保存路徑,關(guān)鍵代碼如下:
define('ROOT_PATH', str_replace("\\", '/', substr(dirname(__FILE__), 0, -9))); $savePath=ROOT_PATH."/tmp/";//把session保存自己網(wǎng)站的跟目錄,這樣就沒有目錄限制了 session_save_path($savePath); session_start();