Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

UCH邮箱登陆支持

[复制链接]
tjzfg 发表于 2008-9-27 02:16:02 | 显示全部楼层 |阅读模式
声明:
  • 本人是纯粹的PHP生手,发这个代码甚至于以后可能再发的代码都不保证没有质量问题,当然我尽可能的多测试,所以要求大家
                         1. 多提意见少谩骂,我会尽我的能力在条件允许的情况下完善它
                         2.改动以前千万备份好自己原来的数据,出问题不负责。
  • 因为最近看了这边的几个帖子,就UCH官方的情况和站长的情况有个大概了解,孰对孰错我没法评断,但秉着支持开源软件发展和希望站长能真正得到自己需要的东西的原则,结合我自己的能力,我愿意做点力所能及的事情来平和大家的情绪,大家有什么希望能尽快以插件形式来解决的问题可以发这里,当然是小问题,大问题还是交给坛子里的大牛门解决吧
  • 最后当然是希望大家支持了,有条件的给+点钱,惭愧啊,没想自己动手做东西的时候想买个模板都么钱。。


UCH邮箱登陆支持
修改5处
1./source/do_login.php
   查找

  1.              if(!$passport = getpassport($username, $password)) {
  2.                         showmessage('login_failure_please_re_login', 'do.php?ac=login');
  3.                 }
复制代码
替换为
  1.         //*************************************************
  2.         //***********邮箱登录 2008-09-26********************
  3.         //*************************************************
  4.      if(eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$username))
  5.      {
  6.                 if(!$passport = getpassportbyemail($username, $password)) {
  7.                         showmessage('邮箱名错误或与密码不对应', 'do.php?ac=login');
  8.                 }
  9.      }
  10.      else
  11.      {
  12.              if(!$passport = getpassport($username, $password)) {
  13.                         showmessage('login_failure_please_re_login', 'do.php?ac=login');
  14.                 }
  15.      }
  16.      //************邮箱登陆****************************
复制代码
2./source/function_common.php
添加代码
  1. /******************************************************
  2. **************获取用户数据(邮箱登陆)2008-09-26***********
  3. *******************************************************/
  4. function getpassportbyemail($email, $password) {
  5.         global $_SGLOBAL, $_SC;

  6.         $passport = array();
  7.         if(!@include_once S_ROOT.'./uc_client/client.php') {
  8.                 showmessage('system_error');
  9.         }

  10.         $ucresult = uc_user_login($email, $password,0,1);
  11.         if($ucresult[0] > 0) {
  12.                 $passport['uid'] = $ucresult[0];
  13.                 $passport['username'] = $ucresult[1];
  14.                 $passport['email'] = $ucresult[3];
  15.         }
  16.         return $passport;
  17. }
复制代码
3./uc_client/client.php
查找function_uc_user_login,添加红色部分
  1. function uc_user_login($username, $password, $isuid=0,$isemail=0) {
  2.         $isuid = intval($isuid);
  3.         $return = call_user_func(UC_API_FUNC, 'user', 'login', array('username'=>$username, 'password'=>$password, 'isuid'=>$isuid,'isemail'=>$isemail));
  4.         return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return);
  5. }
复制代码
4. ./uc_client/control/user.php
查找
  1.         //note public 登陆接口
  2.         function onlogin($arr) {
  3.                 @extract($arr, EXTR_SKIP);//username, password, isuid
  4.                 if($isuid) {
  5.                         $user = $_ENV['user']->get_user_by_uid($username);
  6.                 } else {
  7.                                 $user = $_ENV['user']->get_user_by_username($username);
  8.                 }
  9.                 //note 用户名不存在
复制代码
替换为
  1.         //note public 登陆接口
  2.         function onlogin($arr) {
  3.                 @extract($arr, EXTR_SKIP);//username, password, isuid
  4.                 if($isuid) {
  5.                         $user = $_ENV['user']->get_user_by_uid($username);
  6.                 } else {
  7.                         If ($isemail) {
  8.                                 $user = $_ENV['user']->get_user_by_email($username);
  9.                         }
  10.                         else
  11.                         {
  12.                                 $user = $_ENV['user']->get_user_by_username($username);
  13.                         }
  14.                 }
  15.                 //note 用户名不存在
复制代码
5. /uc_client/model/user.php
查找
  1. function get_user_by_uid($uid) {
  2.                 $arr = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."members WHERE uid='$uid'");
  3.                 return $arr;
  4.         }

  5.         function get_user_by_username($username) {
  6.                 $arr = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."members WHERE username='$username'");
  7.                 return $arr;
  8.         }
  9.         }
复制代码
后面添加

  1.         function get_user_by_email($email) {
  2.                 $arr = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."members WHERE email='$email'");
  3.                 return $arr;
  4.         }
复制代码

[ 本帖最后由 tjzfg 于 2008-9-27 02:19 编辑 ]

评分

1

查看全部评分

东方杰 发表于 2008-9-27 02:18:17 | 显示全部楼层
沙发支持!

都市缘华友圈 http://lihuajie.net
回复

使用道具 举报

 楼主| tjzfg 发表于 2008-9-27 02:20:41 | 显示全部楼层
今天太晚了,明天总结测试情况,我这里基本上功能都达到了。。
。。。LS沙发好快
回复

使用道具 举报

beertop9 发表于 2008-9-27 02:22:43 | 显示全部楼层
板凳的板凳?
回复

使用道具 举报

西安夜时尚 发表于 2008-9-27 02:48:55 | 显示全部楼层
占位观看.槑 等会装...
回复

使用道具 举报

bigydz 发表于 2008-9-27 02:57:43 | 显示全部楼层
占位观看.槑 等会装...
回复

使用道具 举报

litaowan 发表于 2008-9-27 08:31:04 | 显示全部楼层
支持 厉害
回复

使用道具 举报

winter2005 发表于 2008-9-27 09:19:39 | 显示全部楼层
占位观看.槑 等会装...
回复

使用道具 举报

批发马甲 发表于 2008-9-27 10:15:10 | 显示全部楼层
:)














.
回复

使用道具 举报

565g 发表于 2008-9-27 11:40:47 | 显示全部楼层
谢谢
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 16:36 , Processed in 0.041332 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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