在開發的時候有一些網站需要做一個整站的搜索功能,當然這個的搜索只包含一部分的內容搜索,比如:新聞,產品,解決方案等幾個主要模塊的內容搜索
這個搜索功能一般是放在網站的導航或者底部,讓瀏覽網站的用戶可以清楚的看到,并且知道這個功能可以,在輸入關鍵字的情況下,可以快速的搜索到一些自己想要了解的產品,新聞等內容。

在搜索的時候輸入中文搜索,接收到的參數是亂碼,查詢數據庫的時候查詢不到任何信息,首先反應的是不是Form 使用get提交的時候有問題,換成post提交試一
下,發現還是一樣的結果,這是前端提交代碼:
<form action="{:urlrotue('***/index')}" method="get">
<div class="row por">
<input type="submit" value="" class="submit0">
<input type="text" placeholder="請輸入搜索內容" class="search-input" name="keywords">
<span class="search-close"></span>
</div>
</form>
面對這樣的結果是一臉懵,大腦里想的是這是什么情況?一臉的問號?為什么以前做的項目沒有遇到這樣的問題,新項目也是使用一樣的框架和方法,怎么這次就遇
到這樣的問題。我在遇到這個問題的時候想著自己能解決,就沒有問同事,就去度娘一頓搜索,終于找到了問題所在,說是瀏覽器的默認編碼在作怪,需要在PHP頁面添加
header("Content-Type:text/html;charset=UTF-8");這個就沒有問題了,結果問題還真的解決了,能搜索出來對應關鍵字的信息,試了試翻頁也沒有問題,然后就
是把項目上傳服務器進行進一步測試。結果就是又出現了新的問題,本地測試的時候一切正常,但是上傳到服務器的時候,這個搜索就出現一些原因不明的問題,在輸入關鍵字查詢的時候一切都是正常的,但是當你搜索到的內容比較多的時候,你想查看第二頁的搜索結果的時候,你會發現翻頁到第二頁的時候,頁面是沒有顯示任何數據的。這到底是什么問題呢?下圖是第一次搜索時顯示正常數據的圖片和翻頁時候顯示無數據的情況圖片:

在遇到這種情況的時候我想大家的第一反應肯定跟我一樣,是不是上傳服務器的時候有什么東西沒保存就上傳上去了,然后去本地把文件一個個的檢查一遍,然后確
認沒問題再上傳一遍,但是結果還是一樣的,翻頁的時候還是沒有查詢到任何數據。
然后就是各種排查,看看是不是分頁的時候傳的參數名是不是跟第一次的時候不一樣,是不是a鏈接傳參的時候漏掉了關鍵字,結果當然都不是這些的問題,下圖是A鏈接的跳轉鏈接圖片:

發現也不是這個問題,然后就是繼續問度娘找問題原因,不知道是不是我搜索的問題一直沒有問到關鍵點,所以一直沒有找到對的方法,實在是沒辦法了就問了一下同事,同事說的是因為參數帶中文出現了亂碼的原因,亂碼?;亂碼我不是已經處理了嗎?怎么又有問題。很是不解,無奈叫同事把他處理過的ThinkPHP框架的分頁類發我一份,我替換看一下有沒有問題
下圖:

結果還是一樣的問題,然后只能繼續問度娘,這次有了提示搜索的問題是“ThinkPHP分頁有中文參數出現亂碼”這個關鍵字,這次終于找到了問題,需要修改一下內置分頁類的Page.class.php的內容,然后就是按操作把對應的內容給修改替換,上傳服務器測試,這次沒問題了顯示正常,翻頁也是正常的,下面是測試結果:
這個是需要替換前的內容:

這是替換后的:

問題到這里就已經解決了,但是也讓我學到了很多,很多問題只要找到對應的關鍵點就能很快解決,在一個人走進死胡同的時候可以問一下身邊的人,他們能給你提供一個全新的方向,這樣也能讓你快速的找到問題的所在。在這里提醒一下,各位遇到問題不應一味的自己研究,其實可以問一下你的同事或者前輩,畢竟你沒遇到的問題,別人可能遇到過,這樣還有助同事之間的交流,增加友誼。