|
|
@ -1,12 +1,22 @@ |
|
|
|
<?php |
|
|
|
if($_SERVER['SCRIPT_FILENAME'] == str_replace('\\', '/', __FILE__)) { |
|
|
|
|
|
|
|
/* |
|
|
|
* Copyright (c) 2010-2012 Tinyboard Development Group |
|
|
|
*/ |
|
|
|
|
|
|
|
if(realpath($_SERVER['SCRIPT_FILENAME']) == str_replace('\\', '/', __FILE__)) { |
|
|
|
// You cannot request this file directly. |
|
|
|
header('Location: ../', true, 302); |
|
|
|
exit; |
|
|
|
} |
|
|
|
|
|
|
|
require 'inc/events.php'; |
|
|
|
require 'lib/gettext/gettext.inc'; |
|
|
|
require_once 'inc/display.php'; |
|
|
|
require_once 'inc/template.php'; |
|
|
|
require_once 'inc/database.php'; |
|
|
|
require_once 'inc/events.php'; |
|
|
|
require_once 'inc/lib/gettext/gettext.inc'; |
|
|
|
|
|
|
|
// the user is not currently logged in as a moderator |
|
|
|
$mod = false; |
|
|
|
|
|
|
|
register_shutdown_function('fatal_error_handler'); |
|
|
|
mb_internal_encoding('UTF-8'); |
|
|
@ -22,11 +32,11 @@ |
|
|
|
if(!isset($_SERVER['REMOTE_ADDR'])) |
|
|
|
$_SERVER['REMOTE_ADDR'] = '0.0.0.0'; |
|
|
|
|
|
|
|
$arrays = Array('db', 'cache', 'cookies', 'error', 'dir', 'mod', 'spam', 'flood_filters', 'wordfilters', 'custom_capcode', 'custom_tripcode', 'dnsbl', 'dnsbl_exceptions', 'remote', 'allowed_ext', 'allowed_ext_files', 'file_icons', 'footer', 'stylesheets', 'additional_javascript', 'markup'); |
|
|
|
$arrays = array('db', 'cache', 'cookies', 'error', 'dir', 'mod', 'spam', 'flood_filters', 'wordfilters', 'custom_capcode', 'custom_tripcode', 'dnsbl', 'dnsbl_exceptions', 'remote', 'allowed_ext', 'allowed_ext_files', 'file_icons', 'footer', 'stylesheets', 'additional_javascript', 'markup'); |
|
|
|
|
|
|
|
$config = Array(); |
|
|
|
$config = array(); |
|
|
|
foreach($arrays as $key) { |
|
|
|
$config[$key] = Array(); |
|
|
|
$config[$key] = array(); |
|
|
|
} |
|
|
|
|
|
|
|
require 'inc/config.php'; |
|
|
@ -45,7 +55,7 @@ |
|
|
|
|
|
|
|
if($config['debug']) { |
|
|
|
if(!isset($debug)) { |
|
|
|
$debug = Array('sql' => Array(), 'purge' => Array(), 'cached' => Array()); |
|
|
|
$debug = array('sql' => array(), 'purge' => array(), 'cached' => array()); |
|
|
|
$debug['start'] = microtime(true); |
|
|
|
} |
|
|
|
} |
|
|
@ -240,7 +250,7 @@ |
|
|
|
$query->bindValue(':theme', $theme); |
|
|
|
$query->execute() or error(db_error($query)); |
|
|
|
|
|
|
|
$settings = Array(); |
|
|
|
$settings = array(); |
|
|
|
while($s = $query->fetch()) { |
|
|
|
$settings[$s['name']] = $s['value']; |
|
|
|
} |
|
|
@ -260,7 +270,7 @@ |
|
|
|
function setupBoard($array) { |
|
|
|
global $board, $config; |
|
|
|
|
|
|
|
$board = Array( |
|
|
|
$board = array( |
|
|
|
'id' => $array['id'], |
|
|
|
'uri' => $array['uri'], |
|
|
|
'name' => $array['title'], |
|
|
@ -404,7 +414,7 @@ |
|
|
|
|
|
|
|
if($config['debug']) { |
|
|
|
if(!isset($debug['unlink'])) |
|
|
|
$debug['unlink'] = Array(); |
|
|
|
$debug['unlink'] = array(); |
|
|
|
$debug['unlink'][] = $path; |
|
|
|
} |
|
|
|
|
|
|
@ -530,10 +540,10 @@ |
|
|
|
|
|
|
|
// Show banned page and exit |
|
|
|
die( |
|
|
|
Element('page.html', Array( |
|
|
|
Element('page.html', array( |
|
|
|
'title' => 'Banned!', |
|
|
|
'config' => $config, |
|
|
|
'body' => Element('banned.html', Array( |
|
|
|
'body' => Element('banned.html', array( |
|
|
|
'config' => $config, |
|
|
|
'ban' => $ban |
|
|
|
) |
|
|
@ -641,7 +651,7 @@ |
|
|
|
} else return false; |
|
|
|
} |
|
|
|
|
|
|
|
function post($post) { |
|
|
|
function post(array $post) { |
|
|
|
global $pdo, $board; |
|
|
|
$query = prepare(sprintf("INSERT INTO `posts_%s` VALUES ( NULL, :thread, :subject, :email, :name, :trip, :capcode, :body, :body_nomarkup, :time, :time, :thumb, :thumbwidth, :thumbheight, :file, :width, :height, :filesize, :filename, :filehash, :password, :ip, :sticky, :locked, 0, :embed)", $board['uri'])); |
|
|
|
|
|
|
@ -731,7 +741,10 @@ |
|
|
|
$query->bindValue(':filehash', null, PDO::PARAM_NULL); |
|
|
|
} |
|
|
|
|
|
|
|
$query->execute() or error(db_error($query)); |
|
|
|
if(!$query->execute()) { |
|
|
|
undoImage($post); |
|
|
|
error(db_error($query)); |
|
|
|
} |
|
|
|
|
|
|
|
return $pdo->lastInsertId(); |
|
|
|
} |
|
|
@ -909,7 +922,8 @@ |
|
|
|
$query->bindValue(':threads_per_page', $config['threads_per_page'], PDO::PARAM_INT); |
|
|
|
$query->execute() or error(db_error($query)); |
|
|
|
|
|
|
|
if($query->rowcount() < 1 && $page > 1) return false; |
|
|
|
if($query->rowcount() < 1 && $page > 1) |
|
|
|
return false; |
|
|
|
while($th = $query->fetch()) { |
|
|
|
if(!$mod && $config['cache']['enabled']) { |
|
|
|
if($built = cache::get("thread_index_{$board['uri']}_{$th['id']}")) { |
|
|
@ -918,7 +932,11 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
$thread = new Thread($th['id'], $th['subject'], $th['email'], $th['name'], $th['trip'], $th['capcode'], $th['body'], $th['time'], $th['thumb'], $th['thumbwidth'], $th['thumbheight'], $th['file'], $th['filewidth'], $th['fileheight'], $th['filesize'], $th['filename'], $th['ip'], $th['sticky'], $th['locked'], $th['sage'], $th['embed'], $mod ? '?/' : $config['root'], $mod); |
|
|
|
$thread = new Thread( |
|
|
|
$th['id'], $th['subject'], $th['email'], $th['name'], $th['trip'], $th['capcode'], $th['body'], $th['time'], $th['thumb'], |
|
|
|
$th['thumbwidth'], $th['thumbheight'], $th['file'], $th['filewidth'], $th['fileheight'], $th['filesize'], $th['filename'], $th['ip'], |
|
|
|
$th['sticky'], $th['locked'], $th['sage'], $th['embed'], $mod ? '?/' : $config['root'], $mod |
|
|
|
); |
|
|
|
|
|
|
|
$posts = prepare(sprintf("SELECT * FROM `posts_%s` WHERE `thread` = :id ORDER BY `id` DESC LIMIT :limit", $board['uri'])); |
|
|
|
$posts->bindValue(':id', $th['id']); |
|
|
@ -930,7 +948,11 @@ |
|
|
|
if($po['file']) |
|
|
|
$num_images++; |
|
|
|
|
|
|
|
$thread->add(new Post($po['id'], $th['id'], $po['subject'], $po['email'], $po['name'], $po['trip'], $po['capcode'], $po['body'], $po['time'], $po['thumb'], $po['thumbwidth'], $po['thumbheight'], $po['file'], $po['filewidth'], $po['fileheight'], $po['filesize'], $po['filename'], $po['ip'], $po['embed'], $mod ? '?/' : $config['root'], $mod)); |
|
|
|
$thread->add(new Post( |
|
|
|
$po['id'], $th['id'], $po['subject'], $po['email'], $po['name'], $po['trip'], $po['capcode'], $po['body'], $po['time'], |
|
|
|
$po['thumb'], $po['thumbwidth'], $po['thumbheight'], $po['file'], $po['filewidth'], $po['fileheight'], $po['filesize'], |
|
|
|
$po['filename'], $po['ip'], $po['embed'], $mod ? '?/' : $config['root'], $mod) |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
if($posts->rowCount() == ($th['sticky'] ? $config['threads_preview_sticky'] : $config['threads_preview'])) { |
|
|
@ -950,7 +972,7 @@ |
|
|
|
$body .= $thread->build(true); |
|
|
|
} |
|
|
|
|
|
|
|
return Array( |
|
|
|
return array( |
|
|
|
'board'=>$board, |
|
|
|
'body'=>$body, |
|
|
|
'post_url' => $config['post_url'], |
|
|
@ -962,7 +984,7 @@ |
|
|
|
function getPageButtons($pages, $mod=false) { |
|
|
|
global $config, $board; |
|
|
|
|
|
|
|
$btn = Array(); |
|
|
|
$btn = array(); |
|
|
|
$root = ($mod ? '?/' : $config['root']) . $board['dir']; |
|
|
|
|
|
|
|
foreach($pages as $num => $page) { |
|
|
@ -1017,9 +1039,9 @@ |
|
|
|
|
|
|
|
if($count < 1) $count = 1; |
|
|
|
|
|
|
|
$pages = Array(); |
|
|
|
$pages = array(); |
|
|
|
for($x=0;$x<$count && $x<$config['max_pages'];$x++) { |
|
|
|
$pages[] = Array( |
|
|
|
$pages[] = array( |
|
|
|
'num' => $x+1, |
|
|
|
'link' => $x==0 ? ($mod ? '?/' : $config['root']) . $board['dir'] . $config['file_index'] : ($mod ? '?/' : $config['root']) . $board['dir'] . sprintf($config['file_page'], $x+1) |
|
|
|
); |
|
|
@ -1138,7 +1160,7 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function createHiddenInputs($extra_salt = Array()) { |
|
|
|
function createHiddenInputs($extra_salt = array()) { |
|
|
|
global $config; |
|
|
|
|
|
|
|
if(!empty($extra_salt)) { |
|
|
@ -1148,7 +1170,7 @@ |
|
|
|
$extra_salt = ''; |
|
|
|
} |
|
|
|
|
|
|
|
$inputs = Array(); |
|
|
|
$inputs = array(); |
|
|
|
|
|
|
|
shuffle($config['spam']['hidden_input_names']); |
|
|
|
$hidden_input_names_x = 0; |
|
|
@ -1184,37 +1206,48 @@ |
|
|
|
|
|
|
|
switch($display_type) { |
|
|
|
case 0: |
|
|
|
$content .= '<input type="hidden" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($value) . '" />'; |
|
|
|
$content .= '<input type="hidden" name="' . htmlspecialchars($name) . '" value="' . |
|
|
|
htmlspecialchars($value) . '" />'; |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
$content .= '<input style="display:none" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($value) . '" />'; |
|
|
|
$content .= '<input style="display:none" name="' . htmlspecialchars($name) . '" value="' . |
|
|
|
htmlspecialchars($value) . '" />'; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
$content .= '<input type="hidden" value="' . htmlspecialchars($value) . '" name="' . htmlspecialchars($name) . '" />'; |
|
|
|
$content .= '<input type="hidden" value="' . htmlspecialchars($value) . '" name="' . |
|
|
|
htmlspecialchars($name) . '" />'; |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
$content .= '<input type="hidden" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($value) . '" />'; |
|
|
|
$content .= '<input type="hidden" name="' . htmlspecialchars($name) . '" value="' . |
|
|
|
htmlspecialchars($value) . '" />'; |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
$content .= '<span style="display:none"><input type="text" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($value) . '" /></span>'; |
|
|
|
$content .= '<span style="display:none"><input type="text" name="' . htmlspecialchars($name) . '" value="' . |
|
|
|
htmlspecialchars($value) .'" /></span>'; |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
$content .= '<div style="display:none"><input type="text" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($value) . '" /></div>'; |
|
|
|
$content .= '<div style="display:none"><input type="text" name="' . htmlspecialchars($name) . '" value="' . |
|
|
|
htmlspecialchars($value) . '" /></div>'; |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
if(!empty($value)) |
|
|
|
$content .= '<textarea style="display:none" name="' . htmlspecialchars($name) . '">' . htmlspecialchars($value) . '</textarea>'; |
|
|
|
$content .= '<textarea style="display:none" name="' . htmlspecialchars($name) . '">' . |
|
|
|
htmlspecialchars($value) . '</textarea>'; |
|
|
|
else |
|
|
|
$content .= '<input type="hidden" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($value) . '" />'; |
|
|
|
$content .= '<input type="hidden" name="' . htmlspecialchars($name) . '" value="' . |
|
|
|
htmlspecialchars($value) . '" />'; |
|
|
|
break; |
|
|
|
case 7: |
|
|
|
if(!empty($value)) |
|
|
|
$content .= '<textarea name="' . htmlspecialchars($name) . '" style="display:none">' . htmlspecialchars($value) . '</textarea>'; |
|
|
|
$content .= '<textarea name="' . htmlspecialchars($name) . '" style="display:none">' . |
|
|
|
htmlspecialchars($value) . '</textarea>'; |
|
|
|
else |
|
|
|
$content .= '<input type="hidden" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($value) . '" />'; |
|
|
|
$content .= '<input type="hidden" name="' . htmlspecialchars($name) . '" value="' . |
|
|
|
htmlspecialchars($value) . '" />'; |
|
|
|
break; |
|
|
|
case 8: |
|
|
|
$content .= '<div style="display:none"><textarea name="' . htmlspecialchars($name) . '" style="display:none">' . htmlspecialchars($value) . '</textarea></div>'; |
|
|
|
$content .= '<div style="display:none"><textarea name="' . htmlspecialchars($name) . '" style="display:none">' . |
|
|
|
htmlspecialchars($value) . '</textarea></div>'; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
@ -1244,7 +1277,7 @@ |
|
|
|
return $content; |
|
|
|
} |
|
|
|
|
|
|
|
function checkSpam($extra_salt = Array()) { |
|
|
|
function checkSpam($extra_salt = array()) { |
|
|
|
global $config; |
|
|
|
|
|
|
|
if(!isset($_POST['hash'])) |
|
|
@ -1260,7 +1293,7 @@ |
|
|
|
} |
|
|
|
|
|
|
|
// Reconsturct the $inputs array |
|
|
|
$inputs = Array(); |
|
|
|
$inputs = array(); |
|
|
|
|
|
|
|
foreach($_POST as $name => $value) { |
|
|
|
if(in_array($name, $config['spam']['valid_inputs'])) |
|
|
@ -1319,14 +1352,14 @@ |
|
|
|
function buildJavascript() { |
|
|
|
global $config; |
|
|
|
|
|
|
|
$stylesheets = Array(); |
|
|
|
$stylesheets = array(); |
|
|
|
foreach($config['stylesheets'] as $name => $uri) { |
|
|
|
$stylesheets[] = Array( |
|
|
|
$stylesheets[] = array( |
|
|
|
'name' => addslashes($name), |
|
|
|
'uri' => addslashes((!empty($uri) ? $config['uri_stylesheets'] : '') . $uri)); |
|
|
|
} |
|
|
|
|
|
|
|
$script = Element('main.js', Array( |
|
|
|
$script = Element('main.js', array( |
|
|
|
'config' => $config, |
|
|
|
'stylesheets' => $stylesheets |
|
|
|
)); |
|
|
@ -1361,7 +1394,7 @@ |
|
|
|
|
|
|
|
foreach($config['dnsbl'] as $blacklist) { |
|
|
|
if(!is_array($blacklist) == 1) |
|
|
|
$blacklist = Array($blacklist); |
|
|
|
$blacklist = array($blacklist); |
|
|
|
|
|
|
|
if(($lookup = str_replace('%', $ip, $blacklist[0])) == $blacklist[0]) |
|
|
|
$lookup = $ip . '.' . $blacklist[0]; |
|
|
@ -1394,8 +1427,7 @@ |
|
|
|
} |
|
|
|
|
|
|
|
function ReverseIPOctets($ip) { |
|
|
|
$ipoc = explode('.', $ip); |
|
|
|
return $ipoc[3] . '.' . $ipoc[2] . '.' . $ipoc[1] . '.' . $ipoc[0]; |
|
|
|
return implode('.', array_reverse(explode('.', $ip))); |
|
|
|
} |
|
|
|
|
|
|
|
function wordfilters(&$body) { |
|
|
@ -1467,7 +1499,7 @@ |
|
|
|
} |
|
|
|
|
|
|
|
if($config['markup_urls']) { |
|
|
|
$markup_urls = Array(); |
|
|
|
$markup_urls = array(); |
|
|
|
|
|
|
|
$body = preg_replace_callback( |
|
|
|
'/((?:https?:\/\/|ftp:\/\/|irc:\/\/)[^\s<>()"]+?(?:\([^\s<>()"]*?\)[^\s<>()"]*?)*)((?:\s|<|>|"|\.||\]|!|\?|,|,|")*(?:[\s<>()"]|$))/', |
|
|
@ -1491,7 +1523,7 @@ |
|
|
|
// replace tabs with 8 spaces |
|
|
|
$body = str_replace("\t", ' ', $body); |
|
|
|
|
|
|
|
$tracked_cites = Array(); |
|
|
|
$tracked_cites = array(); |
|
|
|
|
|
|
|
// Cites |
|
|
|
if(isset($board) && preg_match_all('/(^|\s)>>(\d+?)([\s,.)?]|$)/m', $body, $cites)) { |
|
|
@ -1513,7 +1545,7 @@ |
|
|
|
$body = str_replace($cites[0][$index], $cites[1][$index] . $replacement . $cites[3][$index], $body); |
|
|
|
|
|
|
|
if($track_cites && $config['track_cites']) |
|
|
|
$tracked_cites[] = Array($board['uri'], $post['id']); |
|
|
|
$tracked_cites[] = array($board['uri'], $post['id']); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -1546,7 +1578,7 @@ |
|
|
|
$body = str_replace($cites[0][$index], $cites[1][$index] . $replacement . $cites[4][$index], $body); |
|
|
|
|
|
|
|
if($track_cites && $config['track_cites']) |
|
|
|
$tracked_cites[] = Array($board['uri'], $post['id']); |
|
|
|
$tracked_cites[] = array($board['uri'], $post['id']); |
|
|
|
} |
|
|
|
} else { |
|
|
|
$replacement = '<a href="' . |
|
|
@ -1573,7 +1605,7 @@ |
|
|
|
} |
|
|
|
|
|
|
|
function utf8tohtml($utf8) { |
|
|
|
return mb_encode_numericentity(htmlspecialchars($utf8, ENT_NOQUOTES, 'UTF-8'), Array(0x80, 0xffff, 0, 0xffff), 'UTF-8'); |
|
|
|
return mb_encode_numericentity(htmlspecialchars($utf8, ENT_NOQUOTES, 'UTF-8'), array(0x80, 0xffff, 0, 0xffff), 'UTF-8'); |
|
|
|
} |
|
|
|
|
|
|
|
function buildThread($id, $return=false, $mod=false) { |
|
|
@ -1595,16 +1627,25 @@ |
|
|
|
|
|
|
|
while($post = $query->fetch()) { |
|
|
|
if(!isset($thread)) { |
|
|
|
$thread = new Thread($post['id'], $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'], $post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'], $post['fileheight'], $post['filesize'], $post['filename'], $post['ip'], $post['sticky'], $post['locked'], $post['sage'], $post['embed'], $mod ? '?/' : $config['root'], $mod); |
|
|
|
$thread = new Thread( |
|
|
|
$post['id'], $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'], $post['time'], |
|
|
|
$post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'], $post['fileheight'], $post['filesize'], |
|
|
|
$post['filename'], $post['ip'], $post['sticky'], $post['locked'], $post['sage'], $post['embed'], $mod ? '?/' : $config['root'], $mod |
|
|
|
); |
|
|
|
} else { |
|
|
|
$thread->add(new Post($post['id'], $thread->id, $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'], $post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'], $post['fileheight'], $post['filesize'], $post['filename'], $post['ip'], $post['embed'], $mod ? '?/' : $config['root'], $mod)); |
|
|
|
$thread->add(new Post( |
|
|
|
$post['id'], $thread->id, $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'], |
|
|
|
$post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'], $post['fileheight'], |
|
|
|
$post['filesize'], $post['filename'], $post['ip'], $post['embed'], $mod ? '?/' : $config['root'], $mod) |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Check if any posts were found |
|
|
|
if(!isset($thread)) error($config['error']['nonexistant']); |
|
|
|
if(!isset($thread)) |
|
|
|
error($config['error']['nonexistant']); |
|
|
|
|
|
|
|
$body = Element('thread.html', Array( |
|
|
|
$body = Element('thread.html', array( |
|
|
|
'board'=>$board, |
|
|
|
'body'=>$thread->build(), |
|
|
|
'config' => $config, |
|
|
@ -1653,7 +1694,7 @@ |
|
|
|
return $trip; |
|
|
|
|
|
|
|
if(!preg_match('/^([^#]+)?(##|#)(.+)$/', $name, $match)) |
|
|
|
return Array($name); |
|
|
|
return array($name); |
|
|
|
|
|
|
|
$name = $match[1]; |
|
|
|
$secure = $match[2] == '##'; |
|
|
@ -1679,7 +1720,7 @@ |
|
|
|
$trip = '!' . substr(crypt($trip, $salt), -10); |
|
|
|
} |
|
|
|
|
|
|
|
return Array($name, $trip); |
|
|
|
return array($name, $trip); |
|
|
|
} |
|
|
|
|
|
|
|
// Highest common factor |
|
|
@ -1726,14 +1767,15 @@ |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
function undoImage($post) { |
|
|
|
if($post['has_file']) { |
|
|
|
if(isset($post['thumb'])) |
|
|
|
function undoImage(array $post) { |
|
|
|
if(!$post['has_file']) |
|
|
|
return; |
|
|
|
|
|
|
|
if(isset($post['file'])) |
|
|
|
file_unlink($post['file']); |
|
|
|
if(isset($post['thumb'])) |
|
|
|
file_unlink($post['thumb']); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function rDNS($ip_addr) { |
|
|
|
global $config; |
|
|
@ -1783,4 +1825,3 @@ |
|
|
|
return $ip_addr; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|