前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHPCMS V9无法正常通过QQ登录的解决方案

PHPCMS V9无法正常通过QQ登录的解决方案

作者头像
魏杰
发布2022-12-23 19:08:06
1.5K0
发布2022-12-23 19:08:06
举报

这个故障的原因是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的方法,代码如下:

代码语言:javascript
复制
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);
    return $result;
}

添加好get_ssl_content方法后,我们再在qqapi.class.php中搜索“file_get_contents(url)”,找到所以出现的位置,然后判断对应的url地址开头如果是https,那么就把这个函数替换为我们上面自己编写的get_ssl_content方法。代码如下:

代码语言:javascript
复制
$content = $this->get_ssl_content($url);

至此,我们已经完成了改写工作,此时PHPCMS应该可以正常通过QQ来登录了。

阳光部落原创,更多内容请访问http://www.sunbloger.com/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档