prepare($sql); $stmt->execute(['blitzId' => $attrBlitzId, 'threshold' => $thresholdSeconds]); $candidates = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($candidates as $c) { // 1. Abonnent auf "unbestaetigt" zuruecksetzen $reset = $pdo->prepare("UPDATE phplist_user_user SET confirmed = 0 WHERE id = :uid"); $reset->execute(['uid' => $c['id']]); // 2. IP zur Sperrliste vormerken (nutzt bestehende Infrastruktur aus blocklist_update.php) $blk = $pdo->prepare("INSERT INTO phplist_user_user_attribute (userid, attributeid, value) VALUES (:uid, :aid, 'on') ON DUPLICATE KEY UPDATE value = 'on'"); $blk->execute(['uid' => $c['id'], 'aid' => $attrIpBlockId]); // 3. Nur die IP an SFS melden - NICHT die moeglicherweise fremde E-Mail-Adresse $data = http_build_query([ 'ip_addr' => $c['conf_ip'], 'username' => 'blitzbestaetigung-bot', 'api_key' => $sfsApiKey, 'evidence' => "Automatisiert erkannt: Bestaetigung nach nur {$c['diff_seconds']}s von abweichender IP (Anmelde-IP: {$c['sub_ip']})", ]); $ch = curl_init('https://www.stopforumspam.com/add.php'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_exec($ch); curl_close($ch); // 4. Als bearbeitet markieren (Duplikatschutz) $mark = $pdo->prepare("INSERT INTO phplist_user_user_attribute (userid, attributeid, value) VALUES (:uid, :aid, 'on') ON DUPLICATE KEY UPDATE value = 'on'"); $mark->execute(['uid' => $c['id'], 'aid' => $attrBlitzId]); echo "Zurueckgesetzt & IP vorgemerkt: userid {$c['id']} ({$c['diff_seconds']}s, sub_ip: {$c['sub_ip']}, conf_ip: {$c['conf_ip']})\n"; sleep(1); }