我想通过一个脚本自动清理我的vBulletin用户,在某些条件下过滤他们,例如在一段时间后删除垃圾邮件注册帐户。这可以在MySQL数据库中使用以下命令轻松完成
DELETE FROM user where userid = 123;在PHP中包含了VB核心
$vbulletin->db->query_write('DELETE FROM user where userid = ' . $userId);但在我的测试安装中,我看到了一些副作用。例如,用户仍然列在社区成员中。似乎VB缓存的数据在直接删除数据库时不会被清除。
发布于 2019-09-05 23:38:15
Fist要求来自vBulletin根目录的global.php具有核心功能,如fetch_userinfo可用,以及工作的数据库连接:
require_once './global.php';(如果需要,将其修改为您环境中的相应路径),并加载受影响用户的userinfo:
$info = fetch_userinfo($userId);现在,我们可以通过创建用户datamanager的实例来修改和删除用户:
$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');
}https://stackoverflow.com/questions/57808848
复制相似问题