完善论坛发布的qq登录插件

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家



http://bbs.ecshop.com/viewthread.php?tid=158490&highlight=qq%B5%C7%C2%BC

在此贴基础上完善热心楼主第二个问题




第一:下载楼主上插件正常登录后 页面用户名显示会很长 这样有时候会影响页面效果 一边楼主建议头部显示qq昵称,打开qq.php找到45行 既$user_info = json_decode($qq->get_user_info());在此行下面加入代码$nickname = $user_info->nickname;//通过api返回的qq昵称

第二:在qq.php找到
  1. $GLOBALS['db']->query('INSERT INTO ' . $GLOBALS['ecs']->table("users") . "(`email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES ('$email', '$username', '$password', '$reg_date', '$reg_date', '$ip')");//账号不存在 就写入数据库 并登陆
复制代码

覆盖为
  1. $GLOBALS['db']->query('INSERT INTO ' . $GLOBALS['ecs']->table("users") . "(`email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`,`nick_name`) VALUES ('$email', '$username', '$password', '$reg_date', '$reg_date', '$ip','$nickname')");//账号不存在 就写入数据库 并登陆
复制代码

第三:进入ec后台 点击 "sql查询" 执行
ALTER TABLE `ecs_users` ADD `nick_name` VARCHAR( 100 ) NOT NULL ;
建立昵称字段。


第四:打开include下lib_main.php 找到 get_user_info 这个函数找到
  1. $sql = 'SELECT u.user_id, u.email, u.user_name, u.user_money, u.pay_points'.
  2. ' FROM ' .$GLOBALS['ecs']->table('users'). ' AS u ' .
  3. " WHERE u.user_id = '$id'";
复制代码

覆盖成
  1. $sql = 'SELECT u.user_id, u.email, u.user_name,u.nick_name, u.user_money, u.pay_points'.
  2. ' FROM ' .$GLOBALS['ecs']->table('users'). ' AS u ' .
  3. " WHERE u.user_id = '$id'";
复制代码



第五:打开模板文件夹里的member_info.lbi 找到{$user_info.username} 修改为{if $user_info.nick_name}{$user_info.nick_name}{else}{$user_info.username}{/if}


演示地址:http://www.i8th.com/user.php


回答:
谢谢正好需要

灰常不错!

来看看学习一下

先顶一个,但经测试,第五步获取的并不是QQ用户呢称, 而是对应个人信息中的邮箱数据!希望能再接再励,继续完善!

楼主看看是怎么回事?


openid并非QQ号码,腾讯官方为保护用户**,openapi并未开放QQ号,所以请求到的openid不能作为nick_name调用。在登录成功后应该引导用户到资料页面完善信息。

这个要顶

会员中心的名字 你也调用user表的nick_name

第三:进入ec后台 点击 "sql查询" 执行
ALTER TABLE `ecs_users` ADD `nick_name` VARCHAR( 100 ) NOT NULL ;
建立昵称字段。



出错了:
Table 'a0616115627.ecs_users' doesn't exist

网站注册时候 注册这个错误


MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => INSERT INTO `a0616111111`.`sc_users`(`email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`,`nick_name`) VALUES ('A1833F60A058E3442935F7EF79C9BEA87761164@qq.com', 'qqA1833F60A058E3442935F7EF79C9BEA8', '254d2603f700fe93a2b79a462722d8d7', '1316075249', '1316075249', '','落叶归根') ) [2] => Array ( [error] => Unknown column 'nick_name' in 'field list' ) [3] => Array ( [errno] => 1054 ) )

感谢楼主,很好~~

第三:进入ec后台 点击 "sql查询" 执行
ALTER TABLE `ecs_users` ADD `nick_name` VARCHAR( 100 ) NOT NULL ;
建立昵称字段。



出错了:
Table 'a0616111111.ecs_users' doesn't exist

这个错误 怎么处理?

收藏了,感谢共享。