大家碰到最多的問題是后臺一片空白,但今天有人碰到使用dedecms的搜索功能出來一片空白了,那么灰到這樣的問題我們來看看怎么解決吧。
近日一客戶把dedecms由WINDOWS2003環(huán)境轉(zhuǎn)到了LINUX環(huán)境,這本來是沒任何問題的,可客戶搜索功能就是無法使用。
輸入關(guān)鍵字后搜索,就顯示一片空白
剛開始我以為是權(quán)限問題,遂把所有文件夾設(shè)置為777,結(jié)果依舊,我想那換個模板試試吧,換成了官方自帶模板,結(jié)果依舊一片空白。
排除了這兩個問題,剩下的就耐人尋味了,不知道是哪里出錯,于是乎開始百度。
官方上的朋友提到的多數(shù)是進(jìn)入后臺 – 其他設(shè)置里 關(guān)閉Sphinx搜索服務(wù)器,問題是客戶壓根兒就沒開。
那么到底是哪里出錯了?我想最有可能是/plus/search.php出錯,下載官方源碼,再次覆蓋,還是一樣!
那么估計就是什么代碼寫得,與LINUX環(huán)境不兼容了?
好了,說了這么多思路,現(xiàn)在說解決辦法。
其實也簡單的很,雖然暫時不知道是什么原因,但是只要進(jìn)入 根目錄 / plus / search.php 編輯這個文件,把以下代碼刪除即可。
- //查找欄目信息
- if(emptyempty($typeid))
- {
- $typenameCacheFile = DEDEDATA.'/cache/typename.inc';
- if(!file_exists($typenameCacheFile) || filemtime($typenameCacheFile) < time()-(3600*24) )
- {
- $fp = fopen(DEDEDATA.'/cache/typename.inc', 'w');
- fwrite($fp, "<"."?php\r\n");
- $dsql->SetQuery("Select id,typename,channeltype From `#@__arctype`");
- $dsql->Execute();
- while($row = $dsql->GetArray())
- {
- fwrite($fp, "\$typeArr[{$row['id']}] = '{$row['typename']}';\r\n");
- }
- fwrite($fp, '?'.'>');
- fclose($fp);
- }
- //引入欄目緩存并看關(guān)鍵字是否有相關(guān)欄目內(nèi)容
- require_once($typenameCacheFile);
- if(isset($typeArr) && is_array($typeArr))
- {
- foreach($typeArr as $id=>$typename)
- {
- //$keywordn = str_replace($typename, ' ', $keyword);
- $keywordn = $keyword;
- if($keyword != $keywordn)
- { //Vevb.com
- $keyword = HtmlReplace($keywordn);
- $typeid = intval($id);
- break;
- }
- }
- }
- }
新聞熱點
疑難解答
圖片精選