現在の位置: ホーム> 最新記事一覧> Discuzフォーラム管理:バッチ削除ユーザーのヒントとコード分析

Discuzフォーラム管理:バッチ削除ユーザーのヒントとコード分析

M66 2025-07-11

バッチ削除ユーザーの実用的なヒント

Discuzフォーラムを運営する場合、管理者は、スパムアカウントや悪意のあるユーザーのクリーンアップなど、バッチでユーザーを削除する必要がある状況を経験する場合があります。ただし、Discuzバックエンドはバッチ削除を直接提供しません。この記事では、いくつかの実用的なヒントを紹介し、不要なユーザーを効果的に削除するのに役立つ特定のコード例を提供します。

バックアップデータ

バッチ削除操作を実行する前に、データベースバックアップを実行する必要があります。バックアップデータは、不必要な損失を回避するために、運用上のエラーまたは問題が発生したときにタイムリーにデータを復元できます。

ユーザーをフィルター

バッチでユーザーを削除する前に、特定の条件(登録時間、投稿数、最終ログイン時間など)に基づいて削除する必要があるユーザーを除外することをお勧めします。削除操作には、条件を満たしているユーザーのみが関与し、通常のユーザーの誤って削除されないようにしてください。

ユーザーに通知します

ユーザーの削除が必要な場合は、関連するユーザーにサイトレターまたはアナウンスを事前に通知し、特定の処理時間を与えることをお勧めします。これは、ユーザーの突然の削除から生じる紛争を回避するのに役立ちます。

慎重な操作

バッチ削除操作を実行するときは注意してください。最初にテスト環境の操作ステップを検証し、プロセスが正しいことを確認し、正式な環境で削除操作を実行することを強くお勧めします。

特定のコードの例

SQLステートメントによるユーザーのバッチ削除

管理者は、SQLステートメントを実行することにより、ユーザーのバッチ削除を実装できます。登録時間が特定の日付の前にあるユーザーを削除するように設計されたサンプルSQLステートメントは次のとおりです。

DELETE FROM pre_common_member

WHERE regdate < UNIX_TIMESTAMP( '2022-01-01' );

discuzが提供するインターフェイスを介してバッチ内のユーザーを削除します

Discuzは、単純なPHPスクリプトを介してユーザーのバッチ削除を可能にする管理インターフェイスを提供します。 Discuzインターフェイスを使用して、登録時間が日付の前だったユーザーを削除するサンプルPHPスクリプトを次に示します。

<?php

define( 'IN_DISCUZ' , true);

require './source/class/class_core.php' ;

$discuz = C::app();

$discuz ->init();

$users = C::t( 'common_member' )->fetch_all_by_regdate(0, UNIX_TIMESTAMP( '2022-01-01' ));

foreach ( $users as $user ) {

C::t( 'common_member' )-> delete ( $user [ 'uid' ]);

}

このサンプルコードは参照のみであり、実際のニーズに応じて調整されます。

結論

この記事で紹介されたヒントとコードの例を通じて、管理者はバッチで不要なユーザーをより効率的に削除し、フォーラム管理の効率を向上させることができます。バッチ削除操作を実行するときは、フォーラムの適切な運用を維持するために、データセキュリティとユーザーエクスペリエンスを確保するように注意してください。