【问题标题】:Delete a vBulletin user account automatically using PHP使用 PHP 自动删除 vBulletin 用户帐户
【发布时间】:2019-09-05 23:38:14
【问题描述】:

我想通过在特定条件下过滤他们的脚本自动清理我的 vBulletin 用户,例如一段时间后删除垃圾邮件注册帐户。这可以很容易地在 MySQL 数据库中使用

DELETE FROM user where userid = 123;

在包含 VB 核心的 PHP 中

$vbulletin->db->query_write('DELETE FROM user where userid = ' . $userId);

但在我的测试安装中,我看到了一些副作用。例如,该用户仍列在社区成员中。似乎VB缓存了直接在数据库上删除时没有被清除的数据。

【问题讨论】:

    标签: php mysql vbulletin


    【解决方案1】:

    拳头需要 vBulletin 根目录中的 global.php 才能拥有像 fetch_userinfo 这样的核心功能以及有效的数据库连接:

    require_once './global.php';
    

    (如果需要,将其修改为您环境中的相应路径)并加载受影响用户的用户信息:

    $info = fetch_userinfo($userId);
    

    现在我们可以通过创建用户数据管理器的实例来修改和删除用户:

    $userdm = datamanager_init('User', $vbulletin, ERRTYPE_CP);
    $userdm->set_existing($info);
    $userdm->delete();
    

    在没有 VBs 保护机制的脚本中,之前验证用户是有意义的。例如,我们可以在删除之前检查它是否是配置中不可删除的用户,如下所示:

    if (is_unalterable_user($userId)){
        print_stop_message('user_is_protected_from_alteration_by_undeletableusers_var');
    }
    

    【讨论】:

      猜你喜欢
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 2017-10-22
      • 2018-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      相关资源
      最近更新 更多