From 71dbf05c16de4639917ec5096c1127b2ff2eac0a Mon Sep 17 00:00:00 2001 From: Paul Merrill Date: Tue, 2 Nov 2010 06:34:28 -0700 Subject: Moved index.php to post.php --- post.php | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 post.php (limited to 'post.php') diff --git a/post.php b/post.php new file mode 100644 index 00000000..c8b51df2 --- /dev/null +++ b/post.php @@ -0,0 +1,193 @@ + '/b/', + 'name' => 'Beta', + 'title' => 'In devleopment.'); + + $body = ''; + + if(isset($_POST['post'])) { + if( !isset($_POST['name']) || + !isset($_POST['email']) || + !isset($_POST['subject']) || + !isset($_POST['body']) || + !isset($_POST['password']) + ) error(ERROR_BOT); + + $post = Array(); + + if(isset($_POST['thread'])) { + $OP = false; + $post['thread'] = round($_POST['thread']); + } else $OP = true; + + if(!(($OP && $_POST['post'] == BUTTON_NEWTOPIC) || (!$OP && $_POST['post'] == BUTTON_REPLY))) error(ERROR_BOT); + + // Check the referrer + if($OP) { + if(!isset($_SERVER['HTTP_REFERER']) || !preg_match(URL_MATCH, $_SERVER['HTTP_REFERER'])) error(ERROR_BOT); + } + + + + // TODO: Since we're now using static HTML files, we can't give them cookies on their first page view + // Find another anti-spam method. + + /* + // Check if he has a valid cookie. + if(!$user['valid']) error(ERROR_BOT); + + // Check how long he has been here. + if(time()-$user['appeared'] 25) error(sprintf(ERROR_TOOLONG, 'name')); + if(strlen($post['email']) > 30) error(sprintf(ERROR_TOOLONG, 'email')); + if(strlen($post['subject']) > 25) error(sprintf(ERROR_TOOLONG, 'subject')); + if(strlen($post['body']) > MAX_BODY) error(ERROR_TOOLONGBODY); + if(!(!$OP && $post['has_file']) && strlen($post['body']) < 1) error(ERROR_TOOSHORTBODY); + if(strlen($post['password']) > 20) error(sprintf(ERROR_TOOLONG, 'password')); + + + + markup($post['body']); + + if($post['has_file']) { + // 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); + + $size = @getimagesize($post['file']); + $post['width'] = $size[0]; + $post['height'] = $size[1]; + + if($post['width'] < 1 || $post['height'] < 1) { + unlink($post['file']); + error(ERR_INVALIDIMG); + } + + $post['filesize'] = filesize($post['file']); + $thumb = resize($post['extension'], $post['file'], $post['thumb'], THUMB_WIDTH, THUMB_HEIGHT); + $post['thumbwidth'] = $thumb['width']; + $post['thumbheight'] = $thumb['height']; + } + + // Todo: Validate some more, remove messy code, allow more specific configuration + + // MySQLify + sql_open(); + mysql_safe_array($post); + + if($OP) { + mysql_query( + sprintf("INSERT INTO `posts` VALUES ( NULL, NULL, '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%s', '%d', '%d', '%s', '%d', '%d', '%d', '%s', '%s', '%s' )", + $post['subject'], + $post['email'], + $post['name'], + $post['trip'], + $post['body'], + time(), + time(), + $post['thumb'], + $post['thumbwidth'], + $post['thumbheight'], + $post['file'], + $post['width'], + $post['height'], + $post['filesize'], + $post['filename'], + $post['password'], + mysql_real_escape_string($_SERVER['REMOTE_ADDR']) + ), $sql) or error(mysql_error($sql)); + } else { + mysql_query( + sprintf("INSERT INTO `posts` VALUES ( NULL, '%d', '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%s', '%d', '%d', '%s', '%d', '%d', '%d', '%s', '%s', '%s' )", + $post['thread'], + $post['subject'], + $post['email'], + $post['name'], + $post['trip'], + $post['body'], + time(), + time(), + $post['has_file']?$post['thumb']:null, + $post['has_file']?$post['thumbwidth']:null, + $post['has_file']?$post['thumbheight']:null, + $post['has_file']?$post['file']:null, + $post['has_file']?$post['width']:null, + $post['has_file']?$post['height']:null, + $post['has_file']?$post['filesize']:null, + $post['has_file']?$post['filename']:null, + $post['password'], + mysql_real_escape_string($_SERVER['REMOTE_ADDR']) + ), $sql) or error(mysql_error($sql)); + } + + $id = mysql_insert_id($sql); + buildThread(($OP?$id:$post['thread'])); + + if(!$OP) { + mysql_query( + sprintf("UPDATE `posts` SET `bump` = '%d' WHERE `id` = '%s' AND `thread` IS NULL", + time(), + $post['thread'] + ), $sql) or error(mysql_error($sql)); + } + + buildIndex(); + sql_close(); + + if(ALWAYS_NOKO || $noko) { + header('Location: ' . DIR_RES . ($OP?$id:$post['thread']) . '.html' . (!$OP?'#'.$id:''), true, 302); + } else { + header('Location: ' . ROOT . FILE_INDEX, true, 302); + } + + exit; + } else { + if(!file_exists(FILE_INDEX)) { + buildIndex(); + sql_close(); + } + + header('Location: ' . ROOT . FILE_INDEX, true, 302); + } +?> -- cgit v1.3