diff options
| author | Michael Save <savetheinternet@tinyboard.org> | 2012-05-07 23:51:15 +1000 |
|---|---|---|
| committer | Michael Save <savetheinternet@tinyboard.org> | 2012-05-07 23:51:15 +1000 |
| commit | 9058d202ed15133d40936a1e43bf34e4049c1be1 (patch) | |
| tree | 699929aa606d52b032deb393b3a8b46f51d5debe /inc/anti-bot.php | |
| parent | cf801586f7b5ff771e3ab06b6271517042c05a74 (diff) | |
Bugfix: the number of successful passes for an anti-spam "hash" was often incorrectly incremented
Diffstat (limited to 'inc/anti-bot.php')
| -rw-r--r-- | inc/anti-bot.php | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/inc/anti-bot.php b/inc/anti-bot.php index 9e3ffeb2..81afca1b 100644 --- a/inc/anti-bot.php +++ b/inc/anti-bot.php @@ -243,22 +243,24 @@ function checkSpam(array $extra_salt = array()) { if ($hash != $_hash) return true; - $query = prepare('UPDATE `antispam` SET `passed` = `passed` + 1 WHERE `hash` = :hash'); + $query = prepare('SELECT `passed` FROM `antispam` WHERE `hash` = :hash'); $query->bindValue(':hash', $hash); $query->execute() or error(db_error($query)); - if ($query->rowCount() == 0) { + if (($passed = $query->fetchColumn(0)) === false) { // there was no database entry for this hash. most likely expired. return true; } - $query = prepare('SELECT `passed` FROM `antispam` WHERE `hash` = :hash'); - $query->bindValue(':hash', $hash); - $query->execute() or error(db_error($query)); - $passed = $query->fetchColumn(0); - if ($passed > $config['spam']['hidden_inputs_max_pass']) return true; - return false; + return $hash; } +function incrementSpamHash($hash) { + $query = prepare('UPDATE `antispam` SET `passed` = `passed` + 1 WHERE `hash` = :hash'); + $query->bindValue(':hash', $hash); + $query->execute() or error(db_error($query)); +} + + |
