在開(kāi)發(fā)的時(shí)候有一些網(wǎng)站需要做一個(gè)整站的搜索功能,當(dāng)然這個(gè)的搜索只包含一部分的內(nèi)容搜索,比如:新聞,產(chǎn)品,解決方案等幾個(gè)主要模塊的內(nèi)容搜索
這個(gè)搜索功能一般是放在網(wǎng)站的導(dǎo)航或者底部,讓瀏覽網(wǎng)站的用戶(hù)可以清楚的看到,并且知道這個(gè)功能可以,在輸入關(guān)鍵字的情況下,可以快速的搜索到一些自己想要了解的產(chǎn)品,新聞等內(nèi)容。
在搜索的時(shí)候輸入中文搜索,接收到的參數(shù)是亂碼,查詢(xún)數(shù)據(jù)庫(kù)的時(shí)候查詢(xún)不到任何信息,首先反應(yīng)的是不是Form 使用get提交的時(shí)候有問(wèn)題,換成post提交試一
下,發(fā)現(xiàn)還是一樣的結(jié)果,這是前端提交代碼:
<form action="{:urlrotue('***/index')}" method="get">
<div class="row por">
<input type="submit" value="" class="submit0">
<input type="text" placeholder="請(qǐng)輸入搜索內(nèi)容" class="search-input" name="keywords">
<span class="search-close"></span>
</div>
</form>
面對(duì)這樣的結(jié)果是一臉懵,大腦里想的是這是什么情況?一臉的問(wèn)號(hào)?為什么以前做的項(xiàng)目沒(méi)有遇到這樣的問(wèn)題,新項(xiàng)目也是使用一樣的框架和方法,怎么這次就遇
到這樣的問(wèn)題。我在遇到這個(gè)問(wèn)題的時(shí)候想著自己能解決,就沒(méi)有問(wèn)同事,就去度娘一頓搜索,終于找到了問(wèn)題所在,說(shuō)是瀏覽器的默認(rèn)編碼在作怪,需要在PHP頁(yè)面添加
header("Content-Type:text/html;charset=UTF-8");這個(gè)就沒(méi)有問(wèn)題了,結(jié)果問(wèn)題還真的解決了,能搜索出來(lái)對(duì)應(yīng)關(guān)鍵字的信息,試了試翻頁(yè)也沒(méi)有問(wèn)題,然后就
是把項(xiàng)目上傳服務(wù)器進(jìn)行進(jìn)一步測(cè)試。結(jié)果就是又出現(xiàn)了新的問(wèn)題,本地測(cè)試的時(shí)候一切正常,但是上傳到服務(wù)器的時(shí)候,這個(gè)搜索就出現(xiàn)一些原因不明的問(wèn)題,在輸入關(guān)鍵字查詢(xún)的時(shí)候一切都是正常的,但是當(dāng)你搜索到的內(nèi)容比較多的時(shí)候,你想查看第二頁(yè)的搜索結(jié)果的時(shí)候,你會(huì)發(fā)現(xiàn)翻頁(yè)到第二頁(yè)的時(shí)候,頁(yè)面是沒(méi)有顯示任何數(shù)據(jù)的。這到底是什么問(wèn)題呢?下圖是第一次搜索時(shí)顯示正常數(shù)據(jù)的圖片和翻頁(yè)時(shí)候顯示無(wú)數(shù)據(jù)的情況圖片:
在遇到這種情況的時(shí)候我想大家的第一反應(yīng)肯定跟我一樣,是不是上傳服務(wù)器的時(shí)候有什么東西沒(méi)保存就上傳上去了,然后去本地把文件一個(gè)個(gè)的檢查一遍,然后確
認(rèn)沒(méi)問(wèn)題再上傳一遍,但是結(jié)果還是一樣的,翻頁(yè)的時(shí)候還是沒(méi)有查詢(xún)到任何數(shù)據(jù)。
然后就是各種排查,看看是不是分頁(yè)的時(shí)候傳的參數(shù)名是不是跟第一次的時(shí)候不一樣,是不是a鏈接傳參的時(shí)候漏掉了關(guān)鍵字,結(jié)果當(dāng)然都不是這些的問(wèn)題,下圖是A鏈接的跳轉(zhuǎn)鏈接圖片:
發(fā)現(xiàn)也不是這個(gè)問(wèn)題,然后就是繼續(xù)問(wèn)度娘找問(wèn)題原因,不知道是不是我搜索的問(wèn)題一直沒(méi)有問(wèn)到關(guān)鍵點(diǎn),所以一直沒(méi)有找到對(duì)的方法,實(shí)在是沒(méi)辦法了就問(wèn)了一下同事,同事說(shuō)的是因?yàn)閰?shù)帶中文出現(xiàn)了亂碼的原因,亂碼?;亂碼我不是已經(jīng)處理了嗎?怎么又有問(wèn)題。很是不解,無(wú)奈叫同事把他處理過(guò)的ThinkPHP框架的分頁(yè)類(lèi)發(fā)我一份,我替換看一下有沒(méi)有問(wèn)題
下圖:
結(jié)果還是一樣的問(wèn)題,然后只能繼續(xù)問(wèn)度娘,這次有了提示搜索的問(wèn)題是“ThinkPHP分頁(yè)有中文參數(shù)出現(xiàn)亂碼”這個(gè)關(guān)鍵字,這次終于找到了問(wèn)題,需要修改一下內(nèi)置分頁(yè)類(lèi)的Page.class.php的內(nèi)容,然后就是按操作把對(duì)應(yīng)的內(nèi)容給修改替換,上傳服務(wù)器測(cè)試,這次沒(méi)問(wèn)題了顯示正常,翻頁(yè)也是正常的,下面是測(cè)試結(jié)果:
這個(gè)是需要替換前的內(nèi)容:
這是替換后的:
問(wèn)題到這里就已經(jīng)解決了,但是也讓我學(xué)到了很多,很多問(wèn)題只要找到對(duì)應(yīng)的關(guān)鍵點(diǎn)就能很快解決,在一個(gè)人走進(jìn)死胡同的時(shí)候可以問(wèn)一下身邊的人,他們能給你提供一個(gè)全新的方向,這樣也能讓你快速的找到問(wèn)題的所在。在這里提醒一下,各位遇到問(wèn)題不應(yīng)一味的自己研究,其實(shí)可以問(wèn)一下你的同事或者前輩,畢竟你沒(méi)遇到的問(wèn)題,別人可能遇到過(guò),這樣還有助同事之間的交流,增加友誼。
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://www.sdlwjx666.com/news/6035.html