PHP中如何实现手机号或邮箱登录?高手指点

注册时,可以选择以手机或邮箱注册,登录的时候只要是手机或者邮箱其中一个都可以登录该如何实现?

是否是用户注册时,填写手机和邮箱还有密码,手机号和邮箱在表不同字段下,而登录时只需要在一个输入框填写,实现无论手机号还是邮箱都能登录是吗?
简单笨点的方法就是取到这个值,分别和手机号字段\邮箱字段匹配,找到了就是这个用户,没找到就是手机号或邮箱错误.
在一个方法,这个值在控制层表单验证时判断是否是正确的手机号,或者邮箱,然后判断后去进行用户验证就可以了啊
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-31

    在  数据库中手机号码和邮箱都是不能重复的,每个用户的手机号和邮箱都是不同的。

    在注册的时候要检验手机号和邮箱是否已经注册。

    登录的时候判断一下用户什么登录的?比如手机号肯定都是数字,邮箱也有一定的格式。

    如果是手机号登录就到数据库里面取出此手机号的用户密码和用户提交的密码比对,正确--》登入,不正确--》重新输入。邮箱也是同样的步骤。

第2个回答  推荐于2017-11-25
邮箱的话,你需要去拿到对应邮箱服务提供商的API接口,都有申请的。

电话号码的话,直接让用户注册的时候填写手机号作为用户名就行了啊追问

这位大哥,你可能没有理解我的意思,我的意思是,用户在注册的时候,可选择邮箱来作为用户名,也可以用手机号来作为用户名,那么登录的时候,如何实现用邮箱或者手机号都可以登录

追答

登录的时候你不是要接收用户输入的用户名么?
那么你在比对的时候,select语句改为:

select 邮箱字段,手机号字段 from 表名 where (邮箱字段 = 接收到的用户名 or 手机号字段 = 接收到的用户名) limit 1

本回答被提问者采纳
第3个回答  2013-07-31
不管手机还是邮箱,记录用户名的字段你就设置一个,类型为文本类型
该类型的字段,可以存储数字,也可以储存字符串
那么登陆比对的时候,就比对这一个字段即可
当然,在比对前,对输入的用户名进行格式检测即可
比如用正则验证用户名是不是符合邮箱格式或者手机号码格式
第4个回答  2013-07-31
假设$accout为用户登录时提交的帐号,
select * from user where (email='$accout' or mobile='$account') and password='$password'