summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSavetheinternet <savetheinternet@n0v4.com>2011-01-15 15:37:39 +1100
committerSavetheinternet <savetheinternet@n0v4.com>2011-01-15 15:37:39 +1100
commitf47cccab019f3e7882a188c7d09e3070eb8f82ce (patch)
treeb197c10403fb290aa688fa5d0c3fa190c0049fba
parentc2727787aba5cf837af747cfb8b5c61c750c1581 (diff)
fixed ban addition page
-rw-r--r--inc/mod.php6
-rw-r--r--mod.php50
2 files changed, 31 insertions, 25 deletions
diff --git a/inc/mod.php b/inc/mod.php
index 23ec43af..a325d589 100644
--- a/inc/mod.php
+++ b/inc/mod.php
@@ -111,10 +111,12 @@
return $body;
}
- function form_newBan($ip=null, $reason='', $continue=false) {
+ function form_newBan($ip=null, $reason='', $continue=false, $delete=false, $board=false) {
return '<fieldset><legend>New ban</legend>' .
- '<form action="" method="post">' .
+ '<form action="?/ban" method="post">' .
($continue ? '<input type="hidden" name="continue" value="' . htmlentities($continue) . '" />' : '') .
+ ($delete ? '<input type="hidden" name="delete" value="' . htmlentities($delete) . '" />' : '') .
+ ($board ? '<input type="hidden" name="board" value="' . htmlentities($board) . '" />' : '') .
'<table>' .
'<tr>' .
'<th><label for="ip">IP</label></th>' .
diff --git a/mod.php b/mod.php
index f93430b8..b4355fe4 100644
--- a/mod.php
+++ b/mod.php
@@ -348,26 +348,8 @@
header('Location: ' . $_SERVER['HTTP_REFERER'], true, REDIRECT_HTTP);
else
header('Location: ?/' . sprintf(BOARD_PATH, $boardName) . FILE_INDEX, true, REDIRECT_HTTP);
- } elseif(preg_match('/^\/' . $regex['board'] . 'ban(&delete)\/(\d+)$/', $query, $matches)) {
- if($mod['type'] < MOD_DELETE) error(ERROR_NOACCESS);
- // Ban by post
-
- $boardName = $matches[1];
- $delete = isset($matches[2]) && $matches[2] == '&delete';
- $post = $matches[3];
- // Open board
- if(!openBoard($boardName))
- error(ERROR_NOBOARD);
-
- $query = prepare(sprintf("SELECT `ip`,`id` FROM `posts_%s` WHERE `id` = :id LIMIT 1", $board['uri']));
- $query->bindValue(':id', $post, PDO::PARAM_INT);
- $query->execute() or error(db_error($query));
-
- if($query->rowCount() < 1) {
- error(ERROR_INVALIDPOST);
- }
-
- $post = $query->fetch();
+ } elseif(preg_match('/^\/ban$/', $query)) {
+ // Ban page
if(isset($_POST['new_ban'])) {
if( !isset($_POST['ip']) ||
@@ -429,8 +411,10 @@
$query->execute() or error(db_error($query));
// Delete too
- if($delete)
- deletePost($post['id']);
+ if($mod['type'] >= MOD_DELETE && isset($_POST['delete']) && isset($_POST['board'])) {
+ openBoard($_POST['board']);
+ deletePost(round($_POST['delete']));
+ }
// Redirect
if(isset($_POST['continue']))
@@ -438,8 +422,28 @@
else
header('Location: ?/' . sprintf(BOARD_PATH, $boardName) . FILE_INDEX, true, REDIRECT_HTTP);
}
+ } elseif(preg_match('/^\/' . $regex['board'] . 'ban(&delete)?\/(\d+)$/', $query, $matches)) {
+ if($mod['type'] < MOD_DELETE) error(ERROR_NOACCESS);
+ // Ban by post
+
+ $boardName = $matches[1];
+ $delete = isset($matches[2]) && $matches[2] == '&delete';
+ $post = $matches[3];
+ // Open board
+ if(!openBoard($boardName))
+ error(ERROR_NOBOARD);
+
+ $query = prepare(sprintf("SELECT `ip`,`id` FROM `posts_%s` WHERE `id` = :id LIMIT 1", $board['uri']));
+ $query->bindValue(':id', $post, PDO::PARAM_INT);
+ $query->execute() or error(db_error($query));
+
+ if($query->rowCount() < 1) {
+ error(ERROR_INVALIDPOST);
+ }
+
+ $post = $query->fetch();
- $body = form_newBan($post['ip'], null, isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : false);
+ $body = form_newBan($post['ip'], null, isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : false, $delete ? $post['id'] : false, $delete ? $boardName : false);
echo Element('page.html', Array(
'index'=>ROOT,