phpcms QQ互联无法正常登录

现在大家应该发现。所有phpcms的网站,QQ互联也就是QQ一键登录都用不了的。登陆报错,或者登陆成功后直接跳到首页。不知道大家发现一个问题没有,官方的phpcms.cn网站之前都是可以用QQ登陆的,现在也不行了,原因是腾讯有更新,而官方phpcms系统更新太慢,不知道那些大爷在干什么。

首页,我们来看看腾讯有啥子更新呢

对于大家这个更新如果没玩过QQ互联的大家也许不懂,我来解释下

上图所示,左边是QQ互联申请的后台地址,右边是phpcms后台填写的回调地址。
phpcms回调地址必须填写http://网站域名/index.php?m=member&c=index&a=public_qq_loginnew才能使用

而现在呢,腾讯qq的回调地址不允许带参数,否则无法提交,并且要与phpcms地址的回调地址一致,才能使用。qq互联回调地址和phpcms管理中心的回调地址不一样导致qq登录报错:redirect uri is illegal(100010)

那么问题来了,phpcms必须要带参数才能使用,而腾讯带上参数又不让使用,这不是很矛盾吗。到底如何解决这个问题呢,肯定不能让腾讯修改规则,而phpcms官方更新太慢。今天下午我看网上有人搜索这个问题,自己研究了下,现在公布给大家

首页第一步,将腾讯和phpcms后台的qq回调地址统一设置成你自己的网站域名www.wfuyu.com下面说明中,网站都以本网站www.wfuyu.com做说明,你自己填写的时候,写上你自己的网站域名即可)。
经过第一步后,点击自己网站上面的QQ登陆按钮,会显示登陆成功,并且登陆后直接返回了首页(其实没有登陆成功,只是读取了腾讯openid的数据,返回到了网站首页,phpcmss没有做任何登陆操作)

第二步,将第一步的中,腾讯qq和phpcms的网站回调地址改成www.wfuyu.com/qqcode

重复第一步登陆QQ,登陆成功后,返回首页,大家注意浏览器url地址为。www.wfuyu.com/qqcode?code=3CD919E33C50BAC0D6D56ABAC926CA62

现在接下来的目标是,将www.wfuyu.com/qqcode?code=3CD919E33C50BAC0D6D56ABAC926CA62 这个地址,指向http://www.wfuyu.com/index.php?m=member&c=index&a=public_qq_loginnew&code=3CD919E33C50BAC0D6D56ABAC926CA62
这样phpcms才会处理腾讯返回过来的qq信息

第三步,伪静态处理
将更目录下.htaccess文件 加入
RewriteCond %{QUERY_STRING} ^code=(.*)$
RewriteRule ^qqcode index.php?m=member&c=index&a=public_qq_loginnew&code=%1 [L]
这里不同的服务器规则不一样,我的是apache

现在大家明白第二步中URL为什么后台加个尾巴qqcode了吧,只是为了方便写伪静态而已,没有别的作用

经过第三步后,大家刷新自己的网站,用QQ登陆,可以显示登陆成功,也跳转到了补充信息页面。
说明:如果你到了这个步骤,如果登陆后页面是空百的
你的服务器可能因为file_get_contents无法请求https连接。
解决方案有3:
1.windows下的PHP,只需要到php.ini中把extension=php_openssl.dll前面的;删掉,重启服务就可以了。
2.linux下的PHP,就必须安装openssl模块,安装好了以后就可以访问了。
3.如果服务器你不能修改配置的话,那么就使用curl函数来替代file_get_contents函数,当然不是简单的替换,还有相应的参数配置才能正常使用curl函数。

我的网站就出现了空白,用网上搜索的方法一解决的,如果你网站不是空白,请忽略上面的文字,直接看下面图片吧,更坑爹呢

phpcms QQ登录无法正常登录

发布时间:2015-05-21 | 阅读次数: 57次 | 分类: 笔记
现在大家应该发现。所有phpcms的网站,QQ互联也就是QQ一键登录都用不了的。不知道大家发现一个问题没有,官方的phpcms.cn网站之前都是可以用QQ登陆的,现在也不行了,原因是腾讯有更新,而官方phpcms系统更新太慢,不知道那些大爷在干什么。
首页,我们来看看腾讯有啥子更新呢
  \

对于大家这个更新如果没玩过QQ互联的大家也许不懂,我来解释下
\
上图所示,左边是QQ互联申请的后台地址,右边是phpcms后台填写的回调地址。
phpcms回调地址必须填写http://网站域名/index.php?m=member&c=index&a=public_qq_loginnew才能使用

而现在呢,腾讯qq的回调地址不允许带参数,否则无法提交,并且要与phpcms地址的回调地址一致,才能使用。qq互联回调地址和phpcms管理中心的回调地址不一样导致qq登录报错:redirect uri is illegal(100010)

那么问题来了,phpcms必须要带参数才能使用,而腾讯带上参数又不让使用,这不是很矛盾吗。到底如何解决这个问题呢,肯定不能让腾讯修改规则,而phpcms官方更新太慢。今天下午我看网上有人搜索这个问题,自己研究了下,现在公布给大家

首页第一步,将腾讯和phpcms后台的qq回调地址统一设置成你自己的网站域名www.wfuyu.com下面说明中,网站都以本网站www.wfuyu.com做说明,你自己填写的时候,写上你自己的网站域名即可)。
经过第一步后,点击自己网站上面的QQ登陆按钮,会显示登陆成功,并且登陆后直接返回了首页(其实没有登陆成功,只是读取了腾讯openid的数据,返回到了网站首页,phpcmss没有做任何登陆操作)

第二步,将第一步的中,腾讯qq和phpcms的网站回调地址改成www.wfuyu.com/qqcode

重复第一步登陆QQ,登陆成功后,返回首页,大家注意浏览器url地址为。www.wfuyu.com/qqcode?code=3CD919E33C50BAC0D6D56ABAC926CA62

现在接下来的目标是,将www.wfuyu.com/qqcode?code=3CD919E33C50BAC0D6D56ABAC926CA62 这个地址,指向http://www.wfuyu.com/index.php?m=member&c=index&a=public_qq_loginnew&code=3CD919E33C50BAC0D6D56ABAC926CA62
这样phpcms才会处理腾讯返回过来的qq信息

第三步,伪静态处理
将更目录下.htaccess文件 加入
RewriteCond %{QUERY_STRING} ^code=(.*)$
RewriteRule ^qqcode index.php?m=member&c=index&a=public_qq_loginnew&code=%1 [L]
这里不同的服务器规则不一样,我的是apache

现在大家明白第二步中URL为什么后台加个尾巴qqcode了吧,只是为了方便写伪静态而已,没有别的作用

经过第三步后,大家刷新自己的网站,用QQ登陆,可以显示登陆成功,也跳转到了补充信息页面。

说明:如果你到了这个步骤,如果登陆后页面是空百的
你的服务器可能因为file_get_contents无法请求https连接。
解决方案有3:
1.windows下的PHP,只需要到php.ini中把extension=php_openssl.dll前面的;删掉,重启服务就可以了。
2.linux下的PHP,就必须安装openssl模块,安装好了以后就可以访问了。
3.如果服务器你不能修改配置的话,那么就使用curl函数来替代file_get_contents函数,当然不是简单的替换,还有相应的参数配置才能正常使用curl函数。

我的网站就出现了空白,用网上搜索的方法一解决的,如果你网站不是空白,请忽略上面的文字,直接看下面图片吧,更坑爹呢
\

尼玛,好不容到了这步了,为啥用户名和昵称是乱码。

解决方法:
在phpcms/modules/member/index.php 大概第1348行
$connect_username = $user['nickname']; 改成$connect_username = $user;
if里面两个地方都要改

然后再重复登陆操作

这样就正常了。按道理来说,这里注册后,绑定QQ就能登陆了。可是,尼玛,不管输入什么都是说系统已经存在!!

真的是一步一个坑啊,是谁说phpcms的bug是开源php最少的,告诉我,我保证不打算他!!

经过反复测试研究
上述ajaxValidator表单验证出错的原因是,启用了伪静态,导致ajax提交地址出错
修改方法:
打开网站文件/templates/default/member/connect.html
找到下面代码


        //修改用户名验证,大概在201行 
        url : "",  
        data :"m=member&c=index&a=public_checkname_ajax",  
        替换成 
        url : "http://www.wfuyu.com/index.php?m=member&c=index&a=public_checkname_ajax", 
        data :"http://www.wfuyu.com/index.php?m=member&c=index&a=public_checkname_ajax", 
         
        //修改用邮箱验证,大概在221行 
        url : "", 
        data :"m=member&c=index&a=public_checkemail_ajax", 
        替换成 
        url : "http://www.wfuyu.com/index.php?m=member&c=index&a=public_checkemail_ajax", 
        data :"http://www.wfuyu.com/index.php?m=member&c=index&a=public_checkemail_ajax", 
         
        //修改用昵称验证,大概在238行 
        url : "", 
        data :"m=member&c=index&a=public_checknickname_ajax", 
        替换成 
        url : "http://www.wfuyu.com/index.php?m=member&c=index&a=public_checknickname_ajax", 
        data :"http://www.wfuyu.com/index.php?m=member&c=index&a=public_checknickname_ajax",


总共需要提供的地方有三个,分别是用户名验证,邮箱验证,昵称验证,代码分别在第202行,第221行和238行左右


到这里,phpcms的QQ互联就可以正常使用了,如果还有疑问,可以随时给我留意,或者关注程序员人生www.wfuyu.com 官方网站。转载请说明出处,本文由程序员人生网独家研究资料。原文地址http://www.wfuyu.com/biji/24097.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

第8代码农师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值