多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 程序人生 > 隨筆 > phpcms QQ登錄無法正常登錄

phpcms QQ登錄無法正常登錄

來源:程序員人生   發布時間:2015-05-21 16:07:27 閱讀次數:13174次
現在大家應該發現。所有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.vxbq.cn(下面說明中,網站都以本網站www.vxbq.cn做說明,你自己填寫的時候,寫上你自己的網站域名即可)。
經過第一步后,點擊自己網站上面的QQ登陸按鈕,會顯示登陸成功,并且登陸后直接返回了首頁(其實沒有登陸成功,只是讀取了騰訊openid的數據,返回到了網站首頁,phpcmss沒有做任何登陸操作)

第二步,將第一步的中,騰訊qq和phpcms的網站回調地址改成www.vxbq.cn/qqcode

重復第一步登陸QQ,登陸成功后,返回首頁,大家注意瀏覽器url地址為。www.vxbq.cn/qqcode?code=3CD919E33C50BAC0D6D56ABAC926CA62

現在接下來的目標是,將www.vxbq.cn/qqcode?code=3CD919E33C50BAC0D6D56ABAC926CA62 這個地址,指向http://www.vxbq.cn/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就能登陸了。可是,尼瑪,不管輸入什么都是說系統已經存在!!


真的是一步一個坑啊,今天研究到這里,后面的慢慢來弄吧,希望大家踴躍給我留意,把下面的問題一起來解決

持續更新中(已解決上述問題)
首先感謝各位網友對這篇文章的支持

上述ajaxValidator表單驗證出錯的原因是,啟用了偽靜態,導致ajax提交地址出錯
修改方法:
打開網站文件/templates/default/member/connect.html
找到下面代碼
  1. //修改用戶名驗證,大概在201行 
  2. url : "",  
  3. data :"m=member&c=index&a=public_checkname_ajax",  
  4. 替換成 
  5. url : "http://www.vxbq.cn/index.php?m=member&c=index&a=public_checkname_ajax"
  6. data :"http://www.vxbq.cn/index.php?m=member&c=index&a=public_checkname_ajax"
  7.  
  8. //修改用郵箱驗證,大概在221行 
  9. url : ""
  10. data :"m=member&c=index&a=public_checkemail_ajax"
  11. 替換成 
  12. url : "http://www.vxbq.cn/index.php?m=member&c=index&a=public_checkemail_ajax"
  13. data :"http://www.vxbq.cn/index.php?m=member&c=index&a=public_checkemail_ajax"
  14.  
  15. //修改用昵稱驗證,大概在238行 
  16. url : ""
  17. data :"m=member&c=index&a=public_checknickname_ajax"
  18. 替換成 
  19. url : "http://www.vxbq.cn/index.php?m=member&c=index&a=public_checknickname_ajax"
  20. data :"http://www.vxbq.cn/index.php?m=member&c=index&a=public_checknickname_ajax",

總共需要提供的地方有三個,分別是用戶名驗證,郵箱驗證,昵稱驗證,代碼分別在第202行,第221行和238行左右

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲 欧美 精品 中文第三 | 亚洲国产第一区二区三区 | 欧美性视频网 | 最近免费中文字幕大全视频 | 国产精品福利在线观看秒播 | 自拍偷拍亚洲 | 亚洲最色 | www.毛片.com | japanese性护士tube | 国产福利在线观看精品 | 欧美最猛性xxxxx短视频 | 欧美自拍另类 | 最近中文字幕国语完整视频 | 国产亚洲欧美成人久久片 | 亚洲色图第十页 | 欧美九九 | 99在线视频精品费观看视 | 欧美 日韩 国产在线 | 在线观看视频h | 午夜dj影院在线观看免费视频中文 | 自拍偷拍欧美亚洲 | 亚洲水蜜桃久久综合网站 | 亚洲成 人a影院青久在线观看 | 自拍偷自拍亚洲精品10p | 性欧美黑人xxxx | aa级一级天堂片免费观看 | 国产高清精品91在线 | 日韩精品无码一区二区三区 | 亚洲作爱视频 | 欧美在线视频播放 | 欧美freesex呦交hd | 久久精品国产免费高清 | 午夜影院在线免费观看 | 久久久久欧美激情 | 成年人视频在线免费观看 | 一级片久久 | 中文字幕第4页 | 国产精品久久久久久免费 | 午夜影院在线视频 | 最近好看中文字幕视频 | 精品福利在线 |