prepare($sql); $stmt->execute(['ipBlockId' => $attrIpBlockId, 'honeypotId' => $attrHoneypotId, 'blockedId' => $attrBlockedId]); $candidates = $stmt->fetchAll(PDO::FETCH_COLUMN); function getSubscriberIp($pdo, $userid) { $stmt = $pdo->prepare("SELECT ip FROM phplist_user_user_history WHERE userid = :uid AND ip IS NOT NULL AND ip != '' ORDER BY date ASC LIMIT 1"); $stmt->execute(['uid' => $userid]); return $stmt->fetchColumn(); } $currentBlocklist = file_exists($blocklistFile) ? include $blocklistFile : []; $newlyBlocked = []; foreach ($candidates as $userid) { $ip = getSubscriberIp($pdo, $userid); if ($ip && !in_array($ip, $currentBlocklist, true)) { $currentBlocklist[] = $ip; $newlyBlocked[] = $ip; } $upd = $pdo->prepare("INSERT INTO phplist_user_user_attribute (userid, attributeid, value) VALUES (:uid, :aid, 'on') ON DUPLICATE KEY UPDATE value = 'on'"); $upd->execute(['uid' => $userid, 'aid' => $attrBlockedId]); } if (!empty($newlyBlocked)) { $currentBlocklist = array_values(array_unique($currentBlocklist)); $content = "