summaryrefslogtreecommitdiff
path: root/post.php
diff options
context:
space:
mode:
authorMichael Save <savetheinternet@tinyboard.org>2012-04-12 21:56:01 +1000
committerMichael Save <savetheinternet@tinyboard.org>2012-04-12 21:56:01 +1000
commita564a95ab40eb1c9cc7de142db60aedb3e749176 (patch)
treeb94f1e2bdb8996ca31b75f6270930636d3f3fa39 /post.php
parentdd0f421015059247464efd5f6d2735c5ee08a400 (diff)
Improved Tinyboard anti-bot/spam filter. See large comment in inc/config.php for details.
Diffstat (limited to 'post.php')
-rw-r--r--post.php43
1 files changed, 22 insertions, 21 deletions
diff --git a/post.php b/post.php
index 9b983842..32b0f59f 100644
--- a/post.php
+++ b/post.php
@@ -5,11 +5,12 @@
*/
require 'inc/functions.php';
+require 'inc/anti-bot.php';
// Fix for magic quotes
if (get_magic_quotes_gpc()) {
function strip_array($var) {
- return is_array($var) ? array_map("strip_array", $var) : stripslashes($var);
+ return is_array($var) ? array_map('strip_array', $var) : stripslashes($var);
}
$_GET = strip_array($_GET);
@@ -192,7 +193,26 @@ if(isset($_POST['delete'])) {
}
}
- if(checkSpam(array($board['uri'], isset($post['thread']) && !($config['quick_reply'] && isset($_POST['quick-reply'])) ? $post['thread'] : null)))
+ if($post['mod'] = isset($_POST['mod']) && $_POST['mod']) {
+ require 'inc/mod.php';
+ if(!$mod) {
+ // Liar. You're not a mod.
+ error($config['error']['notamod']);
+ }
+
+ $post['sticky'] = $post['op'] && isset($_POST['sticky']);
+ $post['locked'] = $post['op'] && isset($_POST['lock']);
+ $post['raw'] = isset($_POST['raw']);
+
+ if($post['sticky'] && !hasPermission($config['mod']['sticky'], $board['uri']))
+ error($config['error']['noaccess']);
+ if($post['locked'] && !hasPermission($config['mod']['lock'], $board['uri']))
+ error($config['error']['noaccess']);
+ if($post['raw'] && !hasPermission($config['mod']['rawhtml'], $board['uri']))
+ 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($config['robot_enable'] && $config['robot_mute']) {
@@ -239,25 +259,6 @@ if(isset($_POST['delete'])) {
}
}
- if($post['mod'] = isset($_POST['mod']) && $_POST['mod']) {
- require 'inc/mod.php';
- if(!$mod) {
- // Liar. You're not a mod.
- error($config['error']['notamod']);
- }
-
- $post['sticky'] = $post['op'] && isset($_POST['sticky']);
- $post['locked'] = $post['op'] && isset($_POST['lock']);
- $post['raw'] = isset($_POST['raw']);
-
- if($post['sticky'] && !hasPermission($config['mod']['sticky'], $board['uri']))
- error($config['error']['noaccess']);
- if($post['locked'] && !hasPermission($config['mod']['lock'], $board['uri']))
- error($config['error']['noaccess']);
- if($post['raw'] && !hasPermission($config['mod']['rawhtml'], $board['uri']))
- error($config['error']['noaccess']);
- }
-
if(!hasPermission($config['mod']['bypass_field_disable'], $board['uri'])) {
if($config['field_disable_name'])
$_POST['name'] = $config['anonymous']; // "forced anonymous"