summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/anti-bot.php18
-rw-r--r--post.php11
2 files changed, 19 insertions, 10 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));
+}
+
+
diff --git a/post.php b/post.php
index b4a256a5..aa4d915b 100644
--- a/post.php
+++ b/post.php
@@ -212,8 +212,11 @@ if (isset($_POST['delete'])) {
error($config['error']['noaccess']);
}
- if (!$post['mod'] && checkSpam(array($board['uri'], isset($post['thread']) && !($config['quick_reply'] && isset($_POST['quick-reply'])) ? $post['thread'] : null)))
- error($config['error']['spam']);
+ if (!$post['mod']) {
+ $post['antispam_hash'] = checkSpam(array($board['uri'], isset($post['thread']) && !($config['quick_reply'] && isset($_POST['quick-reply'])) ? $post['thread'] : null));
+ if ($post['antispam_hash'] === true)
+ error($config['error']['spam']);
+ }
if ($config['robot_enable'] && $config['robot_mute']) {
checkMute();
@@ -526,6 +529,10 @@ if (isset($_POST['delete'])) {
$id = post($post);
+ if (isset($post['antispam_hash'])) {
+ incrementSpamHash($post['antispam_hash']);
+ }
+
if (isset($post['tracked_cites'])) {
foreach ($post['tracked_cites'] as $cite) {
$query = prepare('INSERT INTO `cites` VALUES (:board, :post, :target_board, :target)');