您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程

Discuz_X1.5增加手机号码登陆的实现方法

雷友水2025-06-29Discuz教程已有人查阅

导读应朋友的要求,需要为他所管理的Discuz_X1.5设置一个手机登陆功能,特做此探索首先,要在Discuz_X1.5的管理员后台开启手机这一项,并设置为必填项不可修改

应朋友的要求,需要为他所管理的Discuz_X1.5设置一个手机登陆功能,特做此探索首先,要在Discuz_X1.5的管理员后台开启手机这一项,并设置为必填项不可修改,不显示什么的,开启正则过滤
对pre_common_member(我这里设置的前缀是pre)表新建一个字段,mobile,char型,大小20,以防别人输入+86什么的打开目录source\module\member下的member_register.php文件,搜索$userdata = array( 这一行,在之前插入这一段话
if(isset($_POST['mobile'])){
$mobile=$_POST['mobile'];
}
然后再把
$userdata = array(
'uid' => $uid,
'username' => $username,
'password' => $password,
'email' => $email,
'adminid' => 0,
'groupid' => $groupinfo['groupid'],
'regdate' => TIMESTAMP,
'credits' => $init_arr[0],
'timeoffset' => 9999
);
改成
$userdata = array(
'uid' => $uid,
'username' => $username,
'password' => $password,
'email' => $email,
'adminid' => 0,
'groupid' => $groupinfo['groupid'],
'regdate' => TIMESTAMP,
'credits' => $init_arr[0],
'timeoffset' => 9999,
'mobile'=> $mobile
);
就是在$userdata这个数组的之后一项后加一个 ,
'mobile'=> $mobile
这样子就能够保证手机号写入member库里了。然后,就要开启手机登陆模式。打开source\function\function_member.php,将
$return = array();
if($loginfield == 'uid') {
$isuid = 1;
} elseif($loginfield == 'email') {
$isuid = 2;
} elseif($loginfield == 'auto') {
$isuid = 3;
} else {
$isuid = 0;
}
修改为
$return = array();
if($loginfield == 'uid') {
$isuid = 1;
} elseif($loginfield == 'email') {
$isuid = 2;
} elseif($loginfield == 'auto') {
$isuid = 3;
} elseif($loginfield == 'mobile') {
$isuid = 4;
}else {
$isuid = 0;
}
打开uc_client\control\user.php 找到
if($isuid == 1) {
$user = $_ENV['user']->get_user_by_uid($username);
} elseif($isuid == 2) {
$user = $_ENV['user']->get_user_by_email($username);
} else {
$user = $_ENV['user']->get_user_by_username($username);
}
改为
if($isuid == 1) {
$user = $_ENV['user']->get_user_by_uid($username);
} elseif($isuid == 2) {
$user = $_ENV['user']->get_user_by_email($username);
} elseif($isuid == 4) {
$user = $_ENV['user']->get_user_by_mobile($username);
}else {
$user = $_ENV['user']->get_user_by_username($username);
}
即增加了一种mobile的登陆方式判断。
打开uc_client\model\user.php找到
function get_user_by_uid($uid)
在其上一行加入如下函数
function get_user_by_mobile($mobile) {
$arr = $this->db->fetch_first("SELECT * FROM ".DB::table('common_member')." WHERE mobile='$mobile'");
$uid = $arr["uid"];
$arr2 = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."members WHERE uid='$uid'");
return $arr2;
}
之后,在几个模板里增添手机登陆项,采用的模板因人而异,笔者采用的是default模板,修改方式是
打开template\default\member\login.htm 和 login_ .htm 找到
<option value="email">{lang email}</option>
在其下面增加一行
<option value="mobile">手机</option>
总结:本来是准备直接在 ".UC_DBTABLEPRE."members 表 即系统的pre_ucenter_members表里面增加一个mobile字段的,但是考虑到可能会对以后要安装的插件的兼容性等问题,还是决定只在pre_common_member(Discuz_X1.5的用户表)里添加mobile字段。故之后一段高手看起来改的有点脱裤子放屁的感觉~~呵呵
按此种方法修改,有两个很明显的弊端,
1、一旦用户注册,就不能够修改手机,即使在后台开放修改,也只能够使用之前的手机才能登陆成功;
2、如果有两个相投的手机注册,那么也会有问题,当然这种可能性比较小。

本文标签:

很赞哦! ()

相关源码

  • (PC+WAP)蓝色电缆桥架五金钢结构机械PbootCMS模板下载采用PC与WAP双端适配设计,满足桌面设备和移动端访问需求。专注服务于电缆桥架、钢结构及五金机械制造领域,通过结构化布局展示产品特性与技术参数,后台数据一体化管理提升内容维护效率。查看源码
  • 帝国cms自适应古诗词古籍名句网站整站带数据基于帝国CMS打造的专业古诗词文化网站模板,专注于古典文学内容的展示与传播。模板设计蕴含传统文化韵味,支持诗词鉴赏、名句赏析、古籍整理等特色功能,为诗词爱好者提供优质的在线阅读体验。查看源码
  • (自适应)蓝色英文外贸电子科技产品带三级栏目网站模板为外贸企业设计的英文网站模板,基于PbootCMS系统开发。突出多语言支持和国际化布局,三级栏目结构清晰展示产品分类,响应式设计确保更好客户在移动端和PC端获得一致的专业体验。查看源码
  • 帝国cms7.5商城模板带图片视频广告位功能本模板基于帝国CMS7.5内核开发,为内容电商平台设计,集成文章、图片、视频多媒体展示与广告位管理功能。采用智能响应式技术,确保商品内容在不同设备上获得较优呈现效果,帮助快速构建专业的内容营销平台。查看源码
  • (自适应响应式)陶瓷研磨盘抛光机械设备pbootcms网站模板本模板基于PbootCMS系统开发,为研磨抛光设备制造企业设计,特别适合陶瓷研磨盘、抛光设备等表面处理设备展示。采用响应式布局技术,确保各类设备的参数和工艺在不同终端上都能清晰呈现。查看源码
  • (自适应响应式)英文外贸汽车零配件五金机械网站模板为汽车零部件制造商与五金机械出口企业打造的响应式网站模板,内置多语言切换功能,支持产品参数表、OEM能力展示等外贸场景需求。通过结构化数据展示帮助海外买家快速理解产品规格。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐