婷姐 发表于 2024-12-8 11:10:29

有没有批量自定义添加会员的功能 New

插件除外,最后能用代码解决的。下面是网上找了一个不能用,或者有没有人会用这个的。


Discuz 6.0+ 批量注册用户名
此方法适合于手动采集用户名,自动注册用户名,这样做的好处是比较逼真!


1.将adduser.php复制到discuz 根目录 下;
/--adduser.php内容如下--/

<? php
require_once './include/common.inc.php ';
//注册的名字
$user_list = file('./username.txt ');
//注册的密码
$a = "12345678";
$pwd = md5($a);
// 注册用户数(建议一万一下)
$member_num = count($user_list);
//设置运行时间
set_time_limit(3600 );
for($i=0;$i<$member_num;$i++) {
$username = $user_list[$i];
$db->query("REPLACE INTO {$tablepre}members (username, password,regdate) VALUES

('$username', '$pwd','1175655041')");
$uid = $db->insert_id();
$db->query("INSERT INTO {$tablepre}memberfields (uid) VALUES ('$uid')");
echo $i.':'.$username."__完成<br/>";
?>


2.手工采集用户名,也放于discuz根目录下
/--username.txt内容如下--/
mouse365
大菜鸟
SHAM


确保一行一个即可!

PS:关于用户名的采集可以采用如下方法(以 http://www.freediscuz.net/bbs/member.php?

action=list 为例)

1. 打开网址 http://www.freediscuz.net/bbs/member.php?action=list ;
2.复制以下信息保存到username.txt
admin 1 2003-6-7 2008-12-22 15:06 127 421
theoldmemory 3 2003-6-8 2004-8-8 23:15 0 0
lauraych 4 2003-6-9 2007-9-28 16:36 0 0
3.利用UltraEdit等编辑器执行正则匹配去掉无用信息
admin
theoldmemory
lau

我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-19 17:34:25

要实现批量自定义添加会员的功能,可以通过编写一个PHP脚本来实现。以下是一个简单的示例代码,你可以根据自己的需求进行调整。

### 1. 创建 `adduser.php` 文件

将以下代码保存为 `adduser.php`,并放置在 Discuz 的根目录下。

<?php
// 引入 Discuz 的全局配置文件
require './source/class/class_core.php';
$discuz = & discuz_core::instance();
$discuz->init();

// 读取用户名文件
$usernameFile = './username.txt';
if (!file_exists($usernameFile)) {
    die("用户名文件不存在!");
}

$usernames = file($usernameFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

if (empty($usernames)) {
    die("用户名文件为空!");
}

// 批量注册用户
foreach ($usernames as $username) {
    $username = trim($username);
    if (empty($username)) {
      continue;
    }

    // 检查用户名是否已存在
    $user = C::t('common_member')->fetch_by_username($username);
    if ($user) {
      echo "用户名 {$username} 已存在,跳过注册。<br>";
      continue;
    }

    // 生成随机密码
    $password = substr(md5(uniqid()), 0, 8);

    // 注册用户
    $uid = uc_user_register($username, $password, 'fakeemail@example.com');
    if ($uid <= 0) {
      echo "注册用户 {$username} 失败。<br>";
      continue;
    }

    echo "成功注册用户 {$username},密码为 {$password}<br>";
}

echo "批量注册完成!";
?>

### 2. 创建 `username.txt` 文件

在 Discuz 根目录下创建一个 `username.txt` 文件,内容如下:

mouse365
大菜鸟
SHAM

确保每行一个用户名。

### 3. 运行脚本

在浏览器中访问 `http://你的网站地址/adduser.php`,脚本会自动读取 `username.txt` 文件中的用户名,并批量注册这些用户。

### 注意事项

1. **安全性**:在生产环境中使用此脚本时,请确保脚本只能由管理员访问,避免被恶意利用。
2. **密码生成**:示例中使用了简单的随机密码生成方式,你可以根据需要调整密码生成逻辑。
3. **用户组和权限**:如果需要为新注册的用户设置特定的用户组或权限,可以在注册后通过 `C::t('common_member')->update()` 方法进行设置。

### 4. 其他说明

- 该脚本适用于 Discuz X3.4 及以上版本,如果你使用的是更早的版本,可能需要根据实际情况调整代码。
- 如果你需要更复杂的功能(如批量设置用户组、权限等),可以在脚本中添加相应的逻辑。

希望这个解决方案对你有帮助!如果有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 有没有批量自定义添加会员的功能 New