用户名 密码 记住我 还未注册?

简单几行代码实现用户名和邮箱双重登录验证 [技术论坛 - XOOPS整合与Hack]

XOOPS China 讨论区 > XOOPS Core (核心) > XOOPS整合与Hack > 简单几行代码实现用户名和邮箱双重登录验证

正在浏览:   1 名游客



 到底部   前一个主题   下一个主题  [无发表权] 请登录或者注册



简单几行代码实现用户名和邮箱双重登录验证
Support Team
注册日期:
2006/11/30 20:48
来自 beijing
所属群组:
网站管理员
注册会员
Dev+Hack
资料整理组
帖子: 1204 | 精华: 16
等级: 30; EXP: 23
HP: 146 / 730
MP: 401 / 10179
离线
最近需要类似校内网那样的email为用户名登录。
后来找社区的胡大师(胡争辉)论证了一下,如果做成这种认证方式,是否还需要控制用户名唯一。

胡大师一句惊醒梦中人,说道“唯一性还是要控制的,因为很多地方有依赖关系。”

我又追问:关于登录方式你推荐那种方式?
胡大师又说可以做成像QQ一样多选。

恩,的确是个好办法。
随即我打开认证的代码跟了下去。
最后发现认证的核心部分在kernel下的member.php中的loginUser函数中处理.
程序员可以看代码啦:

/**
     * log in a user
     *
     * @param string $uname username as entered in the login form
     * @param string $pwd password entered in the login form
     * @return object XoopsUser reference to the logged in user. FALSE if failed to log in
     */
    
function &loginUser($uname$pwd)
    {
        
$criteria = new CriteriaCompo(new Criteria('uname'$uname));
        
$criteria->add(new Criteria('pass'md5($pwd)));
        
$user $this->_uHandler->getObjects($criteriafalse);
        if (!
$user || count($user) != 1) {
            
$user false;
            return 
$user;
        }
        return 
$user[0];
    }


做到双重认证很简单只需要在下面这句话后面加入一小段代码:

$user 
$this->_uHandler->getObjects($criteriafalse);


在上面那句话后面加入以下代码即可:

//ezsky hack
        
unset ($criteria);
        if (!
$user || count($user) != 1) {
            
$criteria = new CriteriaCompo(new Criteria('email'$uname));
            
$criteria->add(new Criteria('pass'md5($pwd)));
            
$user $this->_uHandler->getObjects($criteriafalse);
        }

保存后,试试用邮箱登录一下.
很有意思哈.




2009/10/18 0:25
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 简单几行代码实现用户名和邮箱双重登录验证
高级会员
注册日期:
2008/6/20 19:12
所属群组:
注册会员
帖子: 130
等级: 10; EXP: 44
HP: 0 / 236
MP: 43 / 2216
离线
來頂一下!!

好玩的方式!!

2009/10/18 8:33
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 简单几行代码实现用户名和邮箱双重登录验证
新进会员
注册日期:
2009/9/20 9:49
所属群组:
注册会员
帖子: 6
等级: 1; EXP: 47
HP: 0 / 11
MP: 2 / 67
离线
请教一下,您用的是什么邮箱?xoops自己有邮箱吗?不是短消息那样的简单功能。起码要有通讯录那种的。

2010/1/20 12:50
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 简单几行代码实现用户名和邮箱双重登录验证
Support Team
注册日期:
2006/11/30 20:48
来自 beijing
所属群组:
网站管理员
注册会员
Dev+Hack
资料整理组
帖子: 1204 | 精华: 16
等级: 30; EXP: 23
HP: 146 / 730
MP: 401 / 10179
离线
引用:

peterml 写道:
请教一下,您用的是什么邮箱?xoops自己有邮箱吗?不是短消息那样的简单功能。起码要有通讯录那种的。

注册时候用户填写的邮箱

2010/1/22 16:12
工具箱 短消息 Email PDF 书签 打印 举报 回顶部



  [无发表权] 请登录或者注册


可以查看帖子。
不可发帖。
不可回复。
不可编辑自己的帖子。
不可删除自己的帖子。
不可发起投票调查。
不可在投票调查中投票。
不可上传附件。
不可不经审核直接发帖。
不可使用主题类别。
不可使用HTML语法。
不可使用签名档。

[高级搜索]