记录不安装插件,修改xiuno程序支持uid登录
huakhl 13小时前

转载自见山论坛: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

最新回复 (0)
全部楼主
返回