声明:
- 本人是纯粹的PHP生手,发这个代码甚至于以后可能再发的代码都不保证没有质量问题,当然我尽可能的多测试,所以要求大家
1. 多提意见少谩骂,我会尽我的能力在条件允许的情况下完善它
2.改动以前千万备份好自己原来的数据,出问题不负责。 - 因为最近看了这边的几个帖子,就UCH官方的情况和站长的情况有个大概了解,孰对孰错我没法评断,但秉着支持开源软件发展和希望站长能真正得到自己需要的东西的原则,结合我自己的能力,我愿意做点力所能及的事情来平和大家的情绪,大家有什么希望能尽快以插件形式来解决的问题可以发这里,当然是小问题,大问题还是交给坛子里的大牛门解决吧
- 最后当然是希望大家支持了,有条件的给+点钱,惭愧啊,没想自己动手做东西的时候想买个模板都么钱。。
UCH邮箱登陆支持
修改5处
1./source/do_login.php
查找
- if(!$passport = getpassport($username, $password)) {
- showmessage('login_failure_please_re_login', 'do.php?ac=login');
- }
复制代码 替换为- //*************************************************
- //***********邮箱登录 2008-09-26********************
- //*************************************************
- if(eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$username))
- {
- if(!$passport = getpassportbyemail($username, $password)) {
- showmessage('邮箱名错误或与密码不对应', 'do.php?ac=login');
- }
- }
- else
- {
- if(!$passport = getpassport($username, $password)) {
- showmessage('login_failure_please_re_login', 'do.php?ac=login');
- }
- }
- //************邮箱登陆****************************
复制代码 2./source/function_common.php
添加代码- /******************************************************
- **************获取用户数据(邮箱登陆)2008-09-26***********
- *******************************************************/
- function getpassportbyemail($email, $password) {
- global $_SGLOBAL, $_SC;
- $passport = array();
- if(!@include_once S_ROOT.'./uc_client/client.php') {
- showmessage('system_error');
- }
- $ucresult = uc_user_login($email, $password,0,1);
- if($ucresult[0] > 0) {
- $passport['uid'] = $ucresult[0];
- $passport['username'] = $ucresult[1];
- $passport['email'] = $ucresult[3];
- }
- return $passport;
- }
复制代码 3./uc_client/client.php
查找function_uc_user_login,添加红色部分- function uc_user_login($username, $password, $isuid=0,$isemail=0) {
- $isuid = intval($isuid);
- $return = call_user_func(UC_API_FUNC, 'user', 'login', array('username'=>$username, 'password'=>$password, 'isuid'=>$isuid,'isemail'=>$isemail));
- return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return);
- }
复制代码 4. ./uc_client/control/user.php
查找- //note public 登陆接口
- function onlogin($arr) {
- @extract($arr, EXTR_SKIP);//username, password, isuid
- if($isuid) {
- $user = $_ENV['user']->get_user_by_uid($username);
- } else {
- $user = $_ENV['user']->get_user_by_username($username);
- }
- //note 用户名不存在
复制代码 替换为- //note public 登陆接口
- function onlogin($arr) {
- @extract($arr, EXTR_SKIP);//username, password, isuid
- if($isuid) {
- $user = $_ENV['user']->get_user_by_uid($username);
- } else {
- If ($isemail) {
- $user = $_ENV['user']->get_user_by_email($username);
- }
- else
- {
- $user = $_ENV['user']->get_user_by_username($username);
- }
- }
- //note 用户名不存在
复制代码 5. /uc_client/model/user.php
查找- function get_user_by_uid($uid) {
- $arr = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."members WHERE uid='$uid'");
- return $arr;
- }
- 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;
- }
复制代码
[ 本帖最后由 tjzfg 于 2008-9-27 02:19 编辑 ] |