找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3671|回复: 0

[分享] dede使用QQ登陆之后跳转到登陆之前的页面

[复制链接]
发表于 2016-3-28 13:35:21 | 显示全部楼层 |阅读模式 来自 河南省新乡市
之前在博客发过一篇文章 讲了三种方法实现dede在使用QQ登陆之后 怎样跳回到登陆之前的页面  细细回想还是第二种方法比较靠谱 那就是session或者cookie 我这里采用的是session技术
dede使用会员主要用于需要金币的文章下载以及软件的下载 这里只考虑了这两种情况  也即在购买文章或者下载软件的时候 登录QQ之后再次回到未登录前的权限页面

这里使用的是亦秋工作室开发的织梦QQ登录程序  在此感谢亦秋工作室免费提供的插件  插件下载地址  dedecmsQQ一键登录插件 最新oauth协议2.0版          1-151119155520.zip (748.78 KB, 下载次数: 384)

首先观察一下文件结构 主要是根目录下的qqLogin文件夹 以及member文件夹的login_qq.php

1-1511241J223938.png

1-1511241J239109.png


member文件夹下的login_qq.php

1-1511241J249156.png


会员登录最后负责的文件是member文件夹下的login_qq.php  打开发现跳转的地址是在这里控制的   下图红色标注处



问题的关键就在于 怎么样把登录前的那个地址传到这个地方来 这个时候可以考虑使用session/cookie

文章阅读  软件下载控制的程序是根目录下plus下的download.php   view.php  找到权限阅读处自行加上QQ登录按钮  如在view.php页面



也就是说 这个文件是在QQ登陆之前的页面 思路是在该页面将当前地址保存起来 最后在login_qq.php中取出该地址

那么问题来了 php如何获得当前页面地址呢  文章阅读地址如

http://www.xxxxxxx.net/plus/view.php?aid=4146

并且是带有参数的   如何获取当前页面地址 请参考  PHP中获取当前页面的完整URL        




思路是在此处开启session_start()把当前页面地址保存在session里  可是不管我如何操作 在login_qq.php页面始终接收不到我保存的该session值  cookie也是一样   大家可以试一下  其中缘由看了QQ登陆程序也许能知晓

后来想到QQ登陆的入口文件是qqLogin/index.php  整个QQ登录是一套程序 算一个系统  那么我在这个文件里面保存session值 然后在login_qq.php取出该值是否可以呢  答案是肯定的 可以自行测试   问题就好办了 只要把在view.php获得的当前页面地址传到qqLogin/index.php即可  如下



然后在qqLogin/index.php接收一下 然后保存成session值

1-1511241QU5623.png


这里因为我做了一个首页签到功能 签完到是跳回到首页 登陆的时候不带参数 所以这里判断了一下

然后在login_qq.php页面

1-1511241R324357.png




这样  貌似就可以实现 登陆之后跳回到登陆之前页面了  然。。。。。。。。。。。。。。。。

用上述方法在软件下载控制程序download.php同样操作   经过测试  点击登陆之后  竟然显示    没有找到可以下载的资源   (忘了截图了)
此时想到观察地址栏   
登陆之前




然而登陆之后



也就是open=2之后的也就是绿色方框部分不见了  根据下载程序  当然会提示 找不到下载资源     此时想到会不会是在传递网址的过程中网址丢失了   经过测试 是在download.php到qqLogin/index.php传递的时候丢失的  注意我这里是用的GET方式传参   还想到过我这个传的参数是不是过长 以前记得听说GET方式传参有字符限制  大家可以去了解一下   但是我这个并不算长  然后去度娘 逛了逛  寻寻觅觅  终于让我看到下面一句话



关键就在于这里 我那个地址在传递过程中&以及后面的都被截掉了    然后根据上面所说的进行字符编码  还去十八哥的论坛搜了一下编码转换 说的都是使用javascript的函数   后来想起来查手册  发现php中有编码函数   那就是urlencode

于是对download.php进行改进  在传递之前做一次编码操作

1-1511241T05GD.png


ok  终于搞定   希望大家在此次测试中能意识到一些问题  以前不会的老是去度娘 最后还是没找到 比如我去搜php编码函数 结果不尽人意 最后想到查手册 url


发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-5-1 07:50 , Processed in 0.046260 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表