Home > Backend Development > PHP Tutorial > phpcms QQ登录无法正常登录

phpcms QQ登录无法正常登录

WBOY
Release: 2016-06-13 12:20:55
Original
1364 people have browsed it

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;
Copy after login
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",
Copy after login

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


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


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template