|
|
@ -1,4 +1,7 @@ |
|
|
|
<?php |
|
|
|
file_put_contents('test.log', "\n\nNEW POST\n", FILE_APPEND); |
|
|
|
file_put_contents('test.log', print_r($_FILES, true), FILE_APPEND); |
|
|
|
|
|
|
|
require 'inc/functions.php'; |
|
|
|
require 'inc/display.php'; |
|
|
|
if (file_exists('inc/instance-config.php')) { |
|
|
@ -69,6 +72,10 @@ |
|
|
|
if(!openBoard($post['board'])) |
|
|
|
error(ERROR_NOBOARD); |
|
|
|
|
|
|
|
if(ROBOT_ENABLE && $board['uri'] == ROBOT_BOARD && ROBOT_MUTE) { |
|
|
|
checkMute(); |
|
|
|
} |
|
|
|
|
|
|
|
//Check if thread exists |
|
|
|
if(!$OP && !threadExists($post['thread'])) |
|
|
|
error(ERROR_NONEXISTANT); |
|
|
@ -159,24 +166,7 @@ |
|
|
|
if($post['mod_tag']) |
|
|
|
$post['trip'] .= ' <a class="nametag">## ' . $post['mod_tag'] . '</a>'; |
|
|
|
|
|
|
|
if(!($mod && $mod['type'] >= MOD_POSTUNORIGINAL) && ROBOT_ENABLE && $board['uri'] == ROBOT_BOARD && checkRobot($post['body'])) { |
|
|
|
if(ROBOT_MUTE) { |
|
|
|
$mutetime = ROBOT_MUTE_MIN+rand()%(ROBOT_MUTE_MAX-ROBOT_MUTE_MIN); |
|
|
|
|
|
|
|
$query = prepare("INSERT INTO `bans` VALUES (:ip, :mod, :set, :expires, :reason)"); |
|
|
|
$query->bindValue(':ip', $_SERVER['REMOTE_ADDR']); |
|
|
|
$query->bindValue(':mod', -1, PDO::PARAM_INT); |
|
|
|
$query->bindValue(':set', time(), PDO::PARAM_INT); |
|
|
|
$query->bindValue(':expires', time()+$mutetime, PDO::PARAM_INT); |
|
|
|
$query->bindValue(':reason', ROBOT_MUTE_DESCRIPTION); |
|
|
|
$query->execute() or error(db_error($query)); |
|
|
|
|
|
|
|
error(sprintf(ERROR_MUTED, $mutetime)); |
|
|
|
} else { |
|
|
|
error(ERROR_UNORIGINAL); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
$post['body_nomarkup'] = $post['body']; |
|
|
|
markup($post['body']); |
|
|
|
|
|
|
|
// Check for a flood |
|
|
@ -185,11 +175,14 @@ |
|
|
|
} |
|
|
|
|
|
|
|
if($post['has_file']) { |
|
|
|
file_put_contents('test.log', "There is a file, I'm about to move it!\n", FILE_APPEND); |
|
|
|
// Just trim the filename if it's too long |
|
|
|
if(strlen($post['filename']) > 30) $post['filename'] = substr($post['filename'], 0, 27).'…'; |
|
|
|
// Move the uploaded file |
|
|
|
if(!@move_uploaded_file($_FILES['file']['tmp_name'], $post['file'])) error(ERROR_NOMOVE); |
|
|
|
|
|
|
|
file_put_contents('test.log', "Moved it successfully (to {$post['file']}), I think!\n", FILE_APPEND); |
|
|
|
|
|
|
|
if($post['zip']) { |
|
|
|
// Validate ZIP file |
|
|
|
if(is_resource($zip = zip_open($post['zip']))) |
|
|
@ -202,10 +195,14 @@ |
|
|
|
$post['extension'] = strtolower(substr($post['file'], strrpos($post['file'], '.') + 1)); |
|
|
|
} |
|
|
|
|
|
|
|
file_put_contents('test.log', "Getting image size of {$post['file']}\n", FILE_APPEND); |
|
|
|
|
|
|
|
$size = @getimagesize($post['file']); |
|
|
|
$post['width'] = $size[0]; |
|
|
|
$post['height'] = $size[1]; |
|
|
|
|
|
|
|
file_put_contents('test.log', "GOT IT! {$post['width']}x{$post['height']}\n", FILE_APPEND); |
|
|
|
|
|
|
|
// Check if the image is valid |
|
|
|
if($post['width'] < 1 || $post['height'] < 1) { |
|
|
|
unlink($post['file']); |
|
|
@ -217,12 +214,18 @@ |
|
|
|
error(ERR_MAXSIZE); |
|
|
|
} |
|
|
|
|
|
|
|
file_put_contents('test.log', "Making a hash\n", FILE_APPEND); |
|
|
|
|
|
|
|
$hash_function = FILE_HASH; |
|
|
|
$post['filehash'] = $hash_function($post['file']); |
|
|
|
$post['filesize'] = filesize($post['file']); |
|
|
|
|
|
|
|
file_put_contents('test.log', "Got a hash ({$post['filehash']})! Loading image...\n", FILE_APPEND); |
|
|
|
|
|
|
|
$image = createimage($post['extension'], $post['file']); |
|
|
|
|
|
|
|
file_put_contents('test.log', "Image loaded!\n", FILE_APPEND); |
|
|
|
|
|
|
|
if(REDRAW_IMAGE && !$post['zip']) { |
|
|
|
switch($post['extension']) { |
|
|
|
case 'jpg': |
|
|
@ -245,19 +248,32 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
file_put_contents('test.log', "Resizing...\n", FILE_APPEND); |
|
|
|
// Create a thumbnail |
|
|
|
$thumb = resize($image, $post['width'], $post['height'], $post['thumb'], THUMB_WIDTH, THUMB_HEIGHT); |
|
|
|
|
|
|
|
file_put_contents('test.log', "Resized!\n", FILE_APPEND); |
|
|
|
|
|
|
|
$post['thumbwidth'] = $thumb['width']; |
|
|
|
$post['thumbheight'] = $thumb['height']; |
|
|
|
} |
|
|
|
|
|
|
|
if(!($mod && $mod['type'] >= MOD_POSTUNORIGINAL) && ROBOT_ENABLE && $board['uri'] == ROBOT_BOARD && checkRobot($post['body_nomarkup'])) { |
|
|
|
if(ROBOT_MUTE) { |
|
|
|
error(sprintf(ERROR_MUTED, mute())); |
|
|
|
} else { |
|
|
|
error(ERROR_UNORIGINAL); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Remove DIR_* before inserting them into the database. |
|
|
|
if($post['has_file']) { |
|
|
|
$post['file'] = substr_replace($post['file'], '', 0, strlen($board['dir'] . DIR_IMG)); |
|
|
|
$post['thumb'] = substr_replace($post['thumb'], '', 0, strlen($board['dir'] . DIR_THUMB)); |
|
|
|
} |
|
|
|
|
|
|
|
file_put_contents('test.log', "Posting...!\n", FILE_APPEND); |
|
|
|
|
|
|
|
// Todo: Validate some more, remove messy code, allow more specific configuration |
|
|
|
$id = post($post, $OP); |
|
|
|
|
|
|
@ -357,10 +373,14 @@ |
|
|
|
unlink($post['zip']); |
|
|
|
} |
|
|
|
|
|
|
|
buildThread(($OP?$id:$post['thread'])); |
|
|
|
|
|
|
|
if(!$OP && $post['email'] != 'sage') { |
|
|
|
bumpThread($post['thread']); |
|
|
|
if(numPosts($OP?$id:$post['thread']) > REPLY_LIMIT) { |
|
|
|
deletePost($OP?$id:$post['thread']); |
|
|
|
} else { |
|
|
|
buildThread(($OP?$id:$post['thread'])); |
|
|
|
|
|
|
|
if(!$OP && $post['email'] != 'sage') { |
|
|
|
bumpThread($post['thread']); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if($OP) |
|
|
|