### 第一步:修改登录模板 首先需要找到登录的模板文件,默认路径为:
/template/default/member/login.htm
<option value="email">{lang email}</option>
<option value="mobile">手机</option>
### 第二步:修改登录流程 打开以下文件:
source/function/function_member.php
userlogin($username, $password, $questionid,
if($loginfield == 'uid' && getglobal('setting/uidlogin')) {
$isuid = 1;
} elseif($loginfield == 'email') {
$isuid = 2;
} elseif($loginfield == 'auto') {
$isuid = 3;
} else {
$isuid = 0;
}
if($loginfield == 'uid' && getglobal('setting/uidlogin')) {
$isuid = 1;
} elseif($loginfield == 'email') {
$isuid = 2;
} elseif($loginfield == 'auto') {
$isuid = 3;
} elseif($loginfield == 'mobile') {
$isuid = 4;
} else {
$isuid = 0;
}
### 第三步:修改UC流程 打开以下文件:
uc_client/control/user.php
$user = $_ENV['user']->get_user_by_uid($username);
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);
}
### 第四步:添加登录模型 打开以下文件:
uc_client/model/user.php
function get_user_by_uid($uid)
function get_user_by_mobile($mobile) {
$arr = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."members WHERE mobile='$mobile'");
return $arr;
}
以上步骤完成后,您的Discuz!系统即可支持通过手机号进行登录。确保每一步都正确执行,以避免出现错误。