Browse Source

Bans

pull/40/head
Savetheinternet 13 years ago
parent
commit
3c24ecd412
  1. 74
      inc/functions.php
  2. 3
      post.php

74
inc/functions.php

@ -27,7 +27,6 @@
} }
function openBoard($uri) { function openBoard($uri) {
global $sql;
sql_open(); sql_open();
$query = prepare("SELECT * FROM `boards` WHERE `uri` = :uri LIMIT 1"); $query = prepare("SELECT * FROM `boards` WHERE `uri` = :uri LIMIT 1");
@ -46,6 +45,71 @@
return $boards; return $boards;
} }
function until($timestamp) {
$difference = $timestamp - time();
if($difference < 60) {
return $difference . ' second' . ($difference != 1 ? 's' : '');
} elseif($difference < 60*60) {
return ($num = round($difference/(60))) . ' minute' . ($num != 1 ? 's' : '');
} elseif($difference < 60*60*24) {
return ($num = round($difference/(60*60))) . ' hour' . ($num != 1 ? 's' : '');
} elseif($difference < 60*60*24*7) {
return ($num = round($difference/(60*60*24))) . ' day' . ($num != 1 ? 's' : '');
} elseif($difference < 60*60*24*7*52) {
return ($num = round($difference/(60*60*24*7))) . ' week' . ($num != 1 ? 's' : '');
} else {
return ($num = round($difference/(60*60*24*7*52))) . ' year' . ($num != 1 ? 's' : '');
}
}
function formatDate($timestamp) {
return date('jS F, Y', $timestamp);
}
function checkBan() {
if(!isset($_SERVER['REMOTE_ADDR'])) {
// Server misconfiguration
return;
}
$query = prepare("SELECT * FROM `bans` WHERE `ip` = :ip LIMIT 1");
$query->bindValue(':ip', $_SERVER['REMOTE_ADDR']);
$query->execute() or error(db_error($query));
if($ban = $query->fetch()) {
$body = '<div class="ban">
<h2>You are banned! ;_;</h2>
<p>You have been banned ' .
($ban['reason'] ? 'for the following reason:' : 'for an unspecified reason.') .
'</p>' .
($ban['reason'] ?
'<p class="reason">' .
$ban['reason'] .
'</p>'
: '') .
'<p>Your ban was filed on <strong>' .
formatDate($ban['set']) .
'</strong>, and ' .
($ban['expires'] ?
'expires on <strong>' .
formatDate($ban['expires']) .
'</strong>, which is ' . until($ban['expires']) . ' from now'
: '<em>does not expire</em>' ) .
'.</p>
<p>Your IP address is <strong>' . $_SERVER['REMOTE_ADDR'] . '</strong>.</p>
</div>';
// Show banned page and exit
die(Element('page.html', Array(
'index' => ROOT,
'title' => 'Banned',
'subtitle' => 'You are banned!',
'body' => $body
)
));
}
}
function threadExists($id) { function threadExists($id) {
global $board; global $board;
@ -117,7 +181,7 @@
} }
function index($page, $mod=false) { function index($page, $mod=false) {
global $sql, $board; global $board;
$body = ''; $body = '';
$offset = round($page*THREADS_PER_PAGE-THREADS_PER_PAGE); $offset = round($page*THREADS_PER_PAGE-THREADS_PER_PAGE);
@ -162,7 +226,7 @@
} }
function getPages($mod=false) { function getPages($mod=false) {
global $sql, $board; global $board;
// Count threads // Count threads
$query = query(sprintf("SELECT COUNT(`id`) as `num` FROM `posts_%s` WHERE `thread` IS NULL", $board['uri'])) or error(db_error()); $query = query(sprintf("SELECT COUNT(`id`) as `num` FROM `posts_%s` WHERE `thread` IS NULL", $board['uri'])) or error(db_error());
@ -179,7 +243,7 @@
} }
function buildIndex() { function buildIndex() {
global $sql, $board; global $board;
sql_open(); sql_open();
$pages = getPages(); $pages = getPages();
@ -206,7 +270,7 @@
} }
function markup(&$body) { function markup(&$body) {
global $sql, $board; global $board;
if(AUTO_UNICODE) { if(AUTO_UNICODE) {
$body = str_replace('...', '…', $body); $body = str_replace('...', '…', $body);

3
post.php

@ -59,6 +59,9 @@
// Open database connection // Open database connection
sql_open(); sql_open();
// Check if banned
checkBan();
// Check if board exists // Check if board exists
if(!openBoard($post['board'])) if(!openBoard($post['board']))
error(ERROR_NOBOARD); error(ERROR_NOBOARD);

Loading…
Cancel
Save