无需激活用户直接登入discuz

//打开discuz/api/uc.php
//synlogin方法(180行)处,往下找到
if(($member = getuserbyuid($uid, 1))) {
    dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
}
 
 
//改为
if(($member = getuserbyuid($uid, 1))) {
    dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
} else {
    if(!function_exists('uc_get_user')) {
        loaducenter();
    }
    $user = uc_get_user($uid, 1);
    if($user) {
        $time = time();
        DB::query("REPLACE INTO ".DB::table('common_member')." SET `uid`='{$user[0]}' , `username`='{$user[1]}' , `password`='".md5(random(10))."' , `email`='{$user[2]}' , `adminid`='0' , `groupid`='10' , `regdate`='{$time}' , `emailstatus`='0' , `credits`='0' , `timeoffset`='9999'");
        DB::query("REPLACE INTO ".DB::table('common_member_status')." SET `uid`='{$user[0]}' , `regip`='{$_G['clientip']}' , `lastip`='{$_G['clientip']}' , `lastvisit`='{$time}' , `lastactivity`='' , `lastpost`='0' , `lastsendmail`='0'");
        DB::query("REPLACE INTO ".DB::table('common_member_count')." SET `uid`='{$user[0]}' , `extcredits1`='0' , `extcredits2`='0' , `extcredits3`='0' , `extcredits4`='0' , `extcredits5`='0' , `extcredits6`='0' , `extcredits7`='0' , `extcredits8`='0'");
        DB::query("REPLACE INTO ".DB::table('common_member_profile')." SET `uid`='{$user[0]}'");
        DB::query("REPLACE INTO ".DB::table('common_member_field_forum')." SET `uid`='{$user[0]}'");
        DB::query("REPLACE INTO ".DB::table('common_member_field_home')." SET `uid`='{$user[0]}'");
        DB::query("UPDATE ".DB::table('common_stat')." SET `register`=`register`+1 WHERE `daytime` = '".date('Ymd', $time)."'");
        if(($member = getuserbyuid($uid, 1))) {
            dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
        }
    }
}

 

转载于:https://www.cnblogs.com/mayi168/p/3521953.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Java 应用中,你可以使用 Discuz API 来实现用户信息的同步和管理。首先,你需要在 Discuz 后台中开启 API 功能,然后获取 API 地址和密钥。然后,在 Java 应用中使用 HTTP 请求来调用 Discuz API,实现用户信息的同步和管理。 具体来说,你可以使用 Discuz API 中的用户相关接口,比如用户注册、用户登录、用户信息查询、用户信息修改等。你还可以使用 Discuz API 中的其他接口,来实现其他功能,比如发帖、回复、点赞等。 举个例子,如果你想实现在 Java 应用中注册 Discuz 用户,你可以使用以下代码: ``` String apiUrl = "https://www.discuz.com/api/user/register"; String apiKey = "your_api_key"; Map<String, String> params = new HashMap<>(); params.put("username", "user1"); params.put("password", "password1"); params.put("email", "[email protected]"); String signature = generateSignature(apiKey, params); params.put("signature", signature); HttpResponse response = post(apiUrl, params); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 200) { // 注册成功 } else { // 注册失败 } ``` 在这段代码中,`generateSignature` 函数用于生成签名,`post` 函数用于发送 HTTP POST 请求。你需要根据自己的实际情况实现这两个函数。 希望这对你有帮助。 ### 回答2: 要实现Java和DISCUZ应用之间的用户信息同步和管理,我们可以采用以下步骤: 1. 创建Java应用的用户管理模块:在Java应用中,我们可以实现一个用户管理模块,用于处理用户的注册、登录、修改信息等操作。该模块需要包含用户信息的数据结构,并提供相应的接口和方法。 2. 创建DISCUZ应用的用户管理模块:同样地,我们需要在DISCUZ应用中实现一个用户管理模块,用于处理用户的注册、登录、修改信息等操作。该模块的功能需要与Java应用中的用户管理模块相对应,并且能够与DISCUZ的数据库进行交互。 3. 同步用户信息:为了实现用户信息的同步,我们可以通过调用Java应用的接口,将用户注册、修改信息等操作发送给Java应用。Java应用在收到请求后,可以将相应的用户信息同步到DISCUZ应用的数据库中。 4. 维护用户一致性:为了保持用户信息的一致性,我们需要在Java应用和DISCUZ应用之间建立一个同步机制。这可以通过定期检查用户信息的更新情况,并将需要同步的数据进行更新来实现。 5. 统一用户登录:为了让用户能够在Java和DISCUZ应用之间进行无缝切换,我们可以实现单一登录机制。这可以通过在Java应用中创建一个登录模块,并进行相应的验证和权限管理,将已登录的用户信息传递给DISCUZ应用,实现无需重复登录的功能。 通过上述步骤,我们可以实现Java和DISCUZ应用之间的用户信息同步和管理。这样一来,用户可以在Java和DISCUZ应用之间共享同一份用户信息,并且能够实现无缝切换和单一登录的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值