转载自见山论坛:https://www.jianshan.org/thread-498.htm
以下是教程内容:
只需要找到文件 route/user.php
然后修改这部分代码
elseif($action == 'login') {
// hook user_login_get_post.php
if($method == 'GET') {
// hook user_login_get_start.php
$referer = user_http_referer();
$header['title'] = lang('user_login');
// hook user_login_get_end.php
include _include(APP_PATH.'view/htm/user_login.htm');
} else if($method == 'POST') {
// hook user_login_post_start.php
$email = param('email'); // 邮箱或者手机号 / email or mobile
$password = param('password');
empty($email) AND message('email', lang('email_is_empty'));
if(is_email($email, $err)) {
$_user = user_read_by_email($email);
empty($_user) AND message('email', lang('email_not_exists'));
} else {
$_user = user_read_by_username($email);
empty($_user) AND message('email', lang('username_not_exists'));
}
!is_password($password, $err) AND message('password', $err);
// hook user_login_post_password_check_after.php
md5($password.$_user['salt']) != $_user['password'] AND message('password', lang('password_incorrect'));
// 更新登录时间和次数
// update login times
user_update($_user['uid'], array('login_ip'=>$longip, 'login_date' =>$time , 'logins+'=>1));
// 全局变量 $uid 会在结束后,在函数 register_shutdown_function() 中存入 session (文件: model/session.func.php)
// global variable $uid will save to session in register_shutdown_function() (file: model/session.func.php)
$uid = $_user['uid'];
$_SESSION['uid'] = $uid;
user_token_set($_user['uid']);
// hook user_login_post_end.php
// 设置 token,下次自动登陆。
message(0, lang('user_login_successfully'));
}
修改为下面的
elseif($action == 'login') {
// hook user_login_get_post.php
if($method == 'GET') {
// hook user_login_get_start.php
$referer = user_http_referer();
$header['title'] = lang('user_login');
// hook user_login_get_end.php
include _include(APP_PATH.'view/htm/user_login.htm');
} else if($method == 'POST') {
// hook user_login_post_start.php
$login_input = param('email'); // 用户输入的登录信息,可能是 UID / 用户名 / 邮箱
$password = param('password');
empty($login_input) AND message('email', lang('email_is_empty')); // 判断输入是否为空
// 判断输入的是 UID 还是邮箱/用户名
if (is_numeric($login_input)) {
// 如果输入的是 UID
$_user = user_read($login_input); // 根据 UID 查找用户
empty($_user) AND message('email', lang('uid_not_exists')); // 如果没有找到用户,返回 UID 不存在的错误提示
} else {
// 如果输入的是邮箱或用户名
if (is_email($login_input, $err)) {
// 如果是邮箱,使用邮箱查找用户
$_user = user_read_by_email($login_input);
empty($_user) AND message('email', lang('email_not_exists')); // 如果没有找到用户,返回邮箱不存在的错误提示
} else {
// 否则认为是用户名,使用用户名查找用户
$_user = user_read_by_username($login_input);
empty($_user) AND message('email', lang('username_not_exists')); // 如果没有找到用户,返回用户名不存在的错误提示
}
}
// 检查密码是否正确
!is_password($password, $err) AND message('password', $err); // 检查密码格式是否正确
// 密码匹配检查
md5($password.$_user['salt']) != $_user['password'] AND message('password', lang('password_incorrect')); // 密码不正确则提示
// 更新登录时间和次数
user_update($_user['uid'], array('login_ip'=>$longip, 'login_date' =>$time , 'logins+'=>1));
// 设置 session
$uid = $_user['uid'];
$_SESSION['uid'] = $uid;
// 设置 token,下次自动登陆
user_token_set($_user['uid']);
// hook user_login_post_end.php
message(0, lang('user_login_successfully')); // 登录成功后返回信息
}
}
修改后记得后台清除缓存
欢迎大家来我论坛体验
www.jianshan.org