Discuz! X3.5 自动批量注册帐号(纯PHP脚本)

广告位招租,站内联系站长,仅支持虚拟币支付,500U/月

admin

Administrator
管理成员
此代码可用于新站初始保留UID用,自动注册的用户以“U-***”为用户名(***为该帐号对应的uid),后期如需启用可在UCenter中修改用户名。将此代码保存为php文件上传至Discuz! 3.5根目录访问即可,默认每次添加1000个用户,可在uri末尾添加 ?end=*** 来指定注册到哪个uid终止。

使用后请务必删除此文件,以防被他人滥用!

PHP:
<div class="blockcode"><blockquote><?php

require_once './source/class/class_core.php';
require_once './config/config_ucenter.php';
require_once './uc_client/client.php';

$discuz = C::app();
$discuz->init();

$startid = DB::result_first("SELECT uid FROM ".DB::table('common_member')." ORDER BY uid DESC LIMIT 1") + 1; //查询最新用户的UID(仅查询此站点,请查看注意事项第1、2条)
$endid = $startid - 1 + 1000; //每次跳转的注册量
$endid = $_GET['end'] >= $startid && $_GET['end'] < $endid ? $_GET['end'] : $endid;

for ($regid = $startid; $regid <= $endid; $regid++) {
    $info = array(
        'username' => 'U-'.$regid,
        'password' => substr(md5(mt_rand()), 2, 12),
        'email' => 'user'.$regid.'@example.com', // Generate a unique email address using the current timestamp
        'ip' => '127.0.0.1',
        'profile' => array('field8' => 'Reserved')
    );

    $uid = register($info); //执行注册
    if (!is_numeric($uid)) {
        exit('注册'.$regid.'失败:'.$uid); //失败退出
    }
}

$continue = $_GET['end'] > $endid ? ' ,正在继续……<script language="JavaScript">setTimeout(function(){location.reload()},2000);</script>' : ' 。操作完成!';
echo '已注册 '.$uid.$continue;

function register($info) {
    $uid = uc_user_register(addslashes($info['username']), $info['password'], $info['email'], '', '', $info['ip']); //向UCenter注册
    if ($uid <= 0) {
        if ($uid == -1) {
            return '用户名不合法';
        } elseif ($uid == -2) {
            return '包含要允许注册的词语';
        } elseif ($uid == -3) {
            return '用户名已经存在';
        } elseif ($uid == -4) {
            return 'Email 格式有误';
        } elseif ($uid == -5) {
            return 'Email 不允许注册';
        } elseif ($uid == -6) {
            return '该 Email 已经被注册';
        } else {
            return '未定义';
        }
    } else {
        $groupid = 10; //默认用户组
        $profile = is_array($info['profile']) ? $info['profile'] : ''; //资料项
        $init_arr = array('credits' => explode(',', '0,0,0,0,0,0,0,0'), 'profile' => $profile, 'emailstatus' => 0);
        C::t('common_member')->insert($uid, $info['username'], md5($info['password']), $info['email'], $info['ip'], $groupid, $init_arr);
        return $uid;
    }
}

?>
 
后退
顶部