| 高手实现E-mail邮箱注册 激活 登陆功能! 欢迎广大站长进行测试!版权归原作者!在此感谢锦猫鼠! 
 服务站长系列之—UCH支持EMAIL登录机制 
 --------------------这里是MrSaner提出建议的原文出处:UCH的高手们,谁能实现E-mail注册 激活 登陆功能?! 就像 校内 海内 开心 开心001等网站那样的邮箱注册、激活和登陆功能。
 当然,最好是能实现 邮箱 用户名 实名都能登陆。
 这样的好处是用户方便记忆,更是大站长远发展不可或缺的。
 我看见很多站长都希望有这样的功能,但官方是不会做的,也问过所谓的官方!
 想必这个市场蛮大的,谁能先做出来,即使以付费的方式发放也行!
 除了期待,还是期待。。。。。。。。。
 ----------------------
 截止目前,非常感谢 锦猫鼠,已经实现这样的功能,目前测试中...
 实现方法详见下:
 -------------------
 ---------------
 锦猫鼠 已经做出了这样的功能,目前为测试阶段。欢迎站长朋友们测试!
 ------email登陆的功能实现的方法:(锦猫鼠 原文日志记录 版权归原作者)
 最近看到广大的站长朋友需要email登陆的功能
 所以我就抽时间做了一个
 主要修改了UC代码,对UCH的代码则不改动
 提前申明几点:
 1.如果官方团队不允许我直接修改UC代码,请及时告诉我
 2.如果有站长朋友认为我做的不好,你可以选择不用
 3.有任何错误请及时告诉我,我会定期更新
 
 下面开始吧
 1.打开uch目录下的 uc_client/control/user.php 文件 控制层
 找到登陆接口 function onlogin() 继续往下找 加入蓝色的代码
 if($isuid) {
 $user = $_ENV['user']->get_user_by_uid($username);
 } else {
 $user = $_ENV['user']->get_user_by_username($username);
 if(!$user) $user = $_ENV['user']->get_user_by_email($username);
 }
 2.打开uch目录下的 uc_client/model/user.php 文件 模型层 加入蓝色代码
 找到这个地方
 function get_user_by_username($username) {
 $arr = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."members WHERE username='$username'");
 return $arr;
 }
 加入下面这个函数
 function get_user_by_email($email) {
 $arr = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."members WHERE email='$email'");
 return $arr;
 }
 
 3.打开 template/do_login.htm 文件
 找到用户名 修改为你想要显示的文字 如用户名或邮箱
 
 4.然后拿着这2个文件 uc_client/control/user.php  uc_client/model/user.php  去uc里面直接覆盖即可
 注意:如果你的uch和uc通讯方式是http,则必须执行第三步,否则不支持email登陆
 我在本地测试是成功的,如果发现不成功,请仔细检查是否是英文状态下的标点符号
 有问题随时告诉我,谢谢!
 |