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);
    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比的哦。

时间: 2024-09-12 18:18:26

PHPCMS V9中QQ登录网站失败问题解决方法的相关文章

Android开发中遇到端口号占用问题解决方法

  这篇文章主要介绍了Android开发中遇到端口号占用问题解决方法,本文给出了一个简洁实用的方法来解决这个烦人的问题,需要的朋友可以参考下 Android开发的时候经常遇到端口号被占用的问题,经常使程序无法运行,很烦人.我总结了一个很好的方法,非常实用.方法如下: (1):方法1: 第一步:1:netstat -ano | findstr "5037" 第二步:2:TASKLIST | findstr "9292" (2):方法2: 首先进入目录下:E: 代码如下

Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法_Android

本文实例讲述了Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法.分享给大家供大家参考,具体如下: 这里主要介绍如何解决ViewPager在ScrollView中滑动经常失效.无法正常滑动问题. 解决方法只需要在接近水平滚动时ScrollView不处理事件而交由其子View(即这里的ViewPager)处理即可,重写ScrollView的onInterceptTouchEvent函数,如下: package cc.newnews.view; import an

Yii框架用户登录session丢失问题解决方法

本文实例讲述了Yii框架用户登录session丢失问题解决方法.分享给大家供大家参考,具体如下: 最近做项目,使用的是YII框架,用户的登录总是出现有时候能登录,有时候不能登录的情况.调试了很多次,开始以为是服务器配置问题,后来怎么测试都不行,还是出现有时候登录session丢失的情况,没办法,在群里面问,发帖,请教大拿,最后都没有发现什么问题. 无意间在网上看到一个人说yii session丢失的问题.终于解决了,解决方法: 初步解决方法: 打开文件 yii\framework\web\aut

Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法

本文实例讲述了Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法.分享给大家供大家参考,具体如下: 这里主要介绍如何解决ViewPager在ScrollView中滑动经常失效.无法正常滑动问题. 解决方法只需要在接近水平滚动时ScrollView不处理事件而交由其子View(即这里的ViewPager)处理即可,重写ScrollView的onInterceptTouchEvent函数,如下: package cc.newnews.view; import an

网站接入QQ登录的两种方法_javascript技巧

首先引入授权js文件 <script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="101140406" data-redirecturi="http://127.0.0.1" charset="utf-8"></script> 然后接入QQ

phpcms v9中给Rss伪静态配置方法

ss页面的伪静态实现目标 设置前的URL:http://localhost/index.php?m=content&c=rss&siteid=1 设置后的URL:http://localhost/rss.html 实现方法: 一.开启rewrite模块 找到Apache 配置文件 httpd.conf  1.LoadModule rewrite_module modules/mod_rewrite.so  把这句的"#"注释掉.  2.AllowOverride non

phpcms v9设置何修改seo标题分隔符方法

phpcms v9的标题分隔符默认是" - ",如设置seo标题为"web开发",在网页的标题栏则显示"web开发 - 网志博客",据说," - "分隔符对谷歌搜索引擎比较友好,但百度却更青莱于" _ "分隔符,可能它更符合中国人的使用习惯吧.随着谷哥在中国市场的消退,前不久我看了一篇关于搜索引擎在中国市场所点市场分额的报道,谷哥只占6%,而百度却占到64%!所以站长们要做SEO优化,主其主要目的只能是讨好

phpcms V9实现QQ登陆OAuth2.0

phpcmsV9使用的QQ登陆依然是OAuth1.0,但现在腾讯已经不审核使用OAuth1.0的网站了.这对于使用pc的站长来讲是一个无比巨大的坑.经过对phpcms论坛的一位同学做的插件进行修改,现在完美实现QQ登陆,暂无发现bug. 实现步骤: ①打开\phpcms\modules\member\index.php文件,把下面的代码找个地方塞进去(可以直接在pc默认的QQ登陆下面).   //QQ登陆oAuth2.0 ublic function public_qq_login2(){  

Phpcms V9修改后台登录入口地址

phpcms默认后台地址是www.xxx.com/admin.php,这样大家都知道后台入口,就会有安全隐患.有两个办法可以换掉入口地址: 1.直接改admin.php的文件名,比如admin88.php 2.后台分离 index.php?m=admin&c=index&a=login&pc_hash= 不允许这样访问, 只能这样访问 admin.php?m=admin&c=index&a=login&pc_hash= 首先,在网站前台入口index.php