PHPCMS V9中QQ登录网站失败问题解决方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-12-02 14:24:19 浏览: 评论:0
QQ登录是现在大多数网站集成的一个登录方式了,但有时会碰到无法登录这其中原因有很多,今天我碰到PHPCMS V9无法使用QQ登录网站了,下面一起来看看PHPCMS V9不能QQ登录网站解决办法.
这个故障的原因是PHPCMS V9的QQ登录功能代码中,使用了file_get_contents函数来获取腾讯的https网址,这类网址是通过ssl加密传输的,虽然,我们可以通过为PHP安装openssl扩展,让file_get_contents函数可以获取到内容,但获取到的内容还是加密的,无法正常的解密.
我的解决思路是自己编写一个通过curl读取数据的方法,替换掉PHPCMS原有的方法,具体如下.
首先,找到phpcmsmodulesmemberclassesqqapi.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); //开源软件:phpfensi.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来登录了.
注意:file_get_contents 函数处理远程文件时不如curl性能好,特别是在多线程时file_get_contents是无法与curl比的哦.
Tags: PHPCMS登录失败 QQ登录失败
相关文章
- ·phpcms用户登录注册 在服务器上错误(2014-10-18)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)