現在很多網站都可以集成了QQ登錄了,但小編在使用PHPCMS V9時發現無法正常通過QQ登錄網站了,那么碰到此問題要如何解決呢?下面我們一起來看看PHPCMS V9無法正常通過QQ登錄問題解決辦法吧.
這個故障的原因是PHPCMS V9的QQ登錄功能代碼中,使用了file_get_contents函數來獲取騰訊的https網址,這類網址是通過ssl加密傳輸的,雖然,我們可以通過為PHP安裝openssl擴展,讓file_get_contents函數可以獲取到內容,但獲取到的內容還是加密的,無法正常的解密.
我的解決思路是自己編寫一個通過curl讀取數據的方法,替換掉PHPCMS原有的方法,具體如下.
首先,找到\phpcms\modules\member\classes\qqapi.class.php文件,我們在這個qqapi.class.php文件的末尾添加一個名為get_ssl_content的方法,代碼如下:
- public function get_ssl_content($url)
- {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- $result = curl_exec($ch); //開源軟件:Vevb.com
- return $result;
- }
添加好get_ssl_content方法后,我們再在qqapi.class.php中搜索“file_get_contents($url)”,找到所以出現的位置,然后判斷對應的$url地址開頭如果是https,那么就把這個函數替換為我們上面自己編寫的get_ssl_content方法,代碼如下:
$content = $this->get_ssl_content($url);
至此,我們已經完成了改寫工作,此時PHPCMS應該可以正常通過QQ來登錄了.
新聞熱點
疑難解答