diff --git a/phpBB/posting.php b/phpBB/posting.php
index 9965a19f21..68d80d2b35 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -49,7 +49,7 @@ $current_time = time();
// Was cancel pressed? If so then redirect to the appropriate page
-if ($cancel || ($current_time - $lastclick < 2 && !$refresh))
+if ($cancel || ($current_time - $lastclick < 2 && $submit))
{
$redirect = ($post_id) ? "viewtopic.$phpEx$SID&p=$post_id#$post_id" : (($topic_id) ? "viewtopic.$phpEx$SID&t=$topic_id" : (($forum_id) ? "viewforum.$phpEx$SID&f=$forum_id" : "index.$phpEx$SID"));
redirect($redirect);
@@ -179,6 +179,16 @@ if ($sql)
$message_parser->get_submitted_attachment_data();
+ // Set uninitialized variables
+ $uninit = array('post_attachment' => 0, 'poster_id' => 0, 'enable_magic_url' => 0, 'topic_status' => 0, 'topic_type' => POST_NORMAL, 'subject' => '', 'topic_title' => '', 'post_time' => 0, 'post_edit_reason' => '');
+ foreach ($uninit as $var_name => $default_value)
+ {
+ if (!isset($$var_name))
+ {
+ $$var_name = $default_value;
+ }
+ }
+
if ($post_attachment && !$submit && !$refresh && !$preview && $mode == 'edit')
{
$sql = 'SELECT attach_id, physical_filename, comment, real_filename, extension, mimetype, filesize, filetime, thumbnail
@@ -296,8 +306,9 @@ if ($mode == 'edit')
// Delete triggered ?
if ($mode == 'delete' && (($poster_id == $user->data['user_id'] && $user->data['user_id'] != ANONYMOUS && $auth->acl_get('f_delete', $forum_id) && $post_id == $topic_last_post_id) || $auth->acl_get('m_delete', $forum_id)))
{
- // Do we need to confirm ?
- if ($confirm)
+ $s_hidden_fields = '';
+
+ if (confirm_box(true))
{
$data = array(
'topic_first_post_id' => $topic_first_post_id,
@@ -325,27 +336,10 @@ if ($mode == 'delete' && (($poster_id == $user->data['user_id'] && $user->data['
meta_refresh(3, $meta_info);
$message .= '
' . sprintf($user->lang['RETURN_FORUM'], "", '');
trigger_error($message);
-
}
else
{
- $s_hidden_fields = '';
-
- page_header($user->lang['DELETE_MESSAGE']);
-
- $template->set_filenames(array(
- 'body' => 'confirm_body.html')
- );
-
- $template->assign_vars(array(
- 'MESSAGE_TITLE' => $user->lang['DELETE_MESSAGE'],
- 'MESSAGE_TEXT' => $user->lang['DELETE_POST_CONFIRM'],
-
- 'S_CONFIRM_ACTION' => "posting.$phpEx$SID",
- 'S_HIDDEN_FIELDS' => $s_hidden_fields)
- );
-
- page_footer();
+ confirm_box(false, 'DELETE_MESSAGE', $s_hidden_fields);
}
}
@@ -492,20 +486,20 @@ if ($submit || $preview || $refresh)
$message_parser->message = (isset($_POST['message'])) ? htmlspecialchars(str_replace(array('\\\'', '\\"', '\\0', '\\\\'), array('\'', '"', '\0', '\\'), $_POST['message'])) : '';
$message_parser->message = preg_replace('#&(\#[0-9]+;)#', '&\1', $message_parser->message);
- $username = ($_POST['username']) ? request_var('username', '') : $username;
- $post_edit_reason = ($_POST['edit_reason'] && $mode == 'edit' && $user->data['user_id'] != $poster_id) ? request_var('edit_reason', '') : '';
+ $username = (isset($_POST['username'])) ? request_var('username', '') : $username;
+ $post_edit_reason = (isset($_POST['edit_reason']) && !empty($_POST['edit_reason']) && $mode == 'edit' && $user->data['user_id'] != $poster_id) ? request_var('edit_reason', '') : '';
$topic_type = (isset($_POST['topic_type'])) ? (int) $_POST['topic_type'] : (($mode != 'post') ? $topic_type : POST_NORMAL);
$topic_time_limit = (isset($_POST['topic_time_limit'])) ? (int) $_POST['topic_time_limit'] : (($mode != 'post') ? $topic_time_limit : 0);
$icon_id = request_var('icon', 0);
- $enable_html = (!$html_status || $_POST['disable_html']) ? false : true;
- $enable_bbcode = (!$bbcode_status || $_POST['disable_bbcode']) ? false : true;
- $enable_smilies = (!$smilies_status || $_POST['disable_smilies']) ? false : true;
+ $enable_html = (!$html_status || isset($_POST['disable_html'])) ? false : true;
+ $enable_bbcode = (!$bbcode_status || isset($_POST['disable_bbcode'])) ? false : true;
+ $enable_smilies = (!$smilies_status || isset($_POST['disable_smilies'])) ? false : true;
$enable_urls = (isset($_POST['disable_magic_url'])) ? 0 : 1;
- $enable_sig = (!$config['allow_sig']) ? false : (($_POST['attach_sig'] && $user->data['user_id'] != ANONYMOUS) ? true : false);
+ $enable_sig = (!$config['allow_sig']) ? false : ((isset($_POST['attach_sig']) && $user->data['user_id'] != ANONYMOUS) ? true : false);
- $notify = ($_POST['notify']);
+ $notify = (isset($_POST['notify']));
$topic_lock = (isset($_POST['lock_topic']));
$post_lock = (isset($_POST['lock_post']));
@@ -606,7 +600,6 @@ if ($submit || $preview || $refresh)
}
// Validate username
- // TODO
if (($username && $user->data['user_id'] == ANONYMOUS) || ($mode == 'edit' && $post_username))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
@@ -629,7 +622,7 @@ if ($submit || $preview || $refresh)
'poll_max_options' => $poll_max_options,
'poll_option_text' => $poll_option_text,
'poll_start' => $poll_start,
- 'poll_last_vote' => $poll_last_vote,
+ 'poll_last_vote' => (isset($poll_last_vote)) ? $poll_last_vote : 0,
'enable_html' => $enable_html,
'enable_bbcode' => $enable_bbcode,
'bbcode_uid' => $message_parser->bbcode_uid,
@@ -640,8 +633,8 @@ if ($submit || $preview || $refresh)
$poll = array();
$message_parser->parse_poll($poll, $poll_data);
- $poll_options = $poll['poll_options'];
- $poll_title = $poll['poll_title'];
+ $poll_options = isset($poll['poll_options']) ? $poll['poll_options'] : '';
+ $poll_title = isset($poll['poll_title']) ? $poll['poll_title'] : '';
// Check topic type
if ($topic_type != POST_NORMAL && ($mode == 'post' || ($mode == 'edit' && $topic_first_post_id == $post_id)))
@@ -744,8 +737,8 @@ if ($submit || $preview || $refresh)
$post_data = array(
'topic_title' => (!$topic_title) ? $subject : $topic_title,
- 'topic_first_post_id' => (int) $topic_first_post_id,
- 'topic_last_post_id' => (int) $topic_last_post_id,
+ 'topic_first_post_id' => (isset($topic_first_post_id)) ? (int) $topic_first_post_id : 0,
+ 'topic_last_post_id' => (isset($topic_last_post_id)) ? (int) $topic_last_post_id : 0,
'topic_time_limit' => (int) $topic_time_limit,
'post_id' => (int) $post_id,
'topic_id' => (int) $topic_id,
@@ -758,15 +751,16 @@ if ($submit || $preview || $refresh)
'enable_smilies' => (bool) $enable_smilies,
'enable_urls' => (bool) $enable_urls,
'enable_indexing' => (bool) $enable_indexing,
- 'message_md5' => (int) $message_md5,
- 'post_checksum' => (int) $post_checksum,
+ 'message_md5' => (string) $message_md5,
+ 'post_time' => (isset($post_time)) ? (int) $post_time : $current_time,
+ 'post_checksum' => (isset($post_checksum)) ? (string) $post_checksum : '',
'post_edit_reason' => $post_edit_reason,
- 'post_edit_user' => ($mode == 'edit') ? $user->data['user_id'] : (int) $post_edit_user,
+ 'post_edit_user' => ($mode == 'edit') ? $user->data['user_id'] : ((isset($post_edit_user)) ? (int) $post_edit_user : 0),
'forum_parents' => $forum_parents,
'forum_name' => $forum_name,
'notify' => $notify,
'notify_set' => $notify_set,
- 'poster_ip' => (int) $poster_ip,
+ 'poster_ip' => (isset($poster_ip)) ? (int) $poster_ip : $user->ip,
'post_edit_locked' => (int) $post_edit_locked,
'bbcode_bitfield' => (int) $message_parser->bbcode_bitfield
);
@@ -837,9 +831,8 @@ if ($subject)
decode_text($subject, $bbcode_uid);
}
-
// Save us some processing time. ;)
-if (count($poll_options))
+if (is_array($poll_options) && sizeof($poll_options))
{
$poll_options_tmp = implode("\n", $poll_options);
decode_text($poll_options_tmp);
@@ -966,6 +959,8 @@ $template->assign_vars(array(
'U_VIEWTOPIC' => ($mode != 'post') ? "viewtopic.$phpEx$SID&$forum_id&t=$topic_id" : '',
'U_PROGRESS_BAR' => "posting.$phpEx$SID&mode=popup",
+ 'S_PRIVMSGS' => false,
+ 'S_FORUM_RULES' => false,
'S_CLOSE_PROGRESS_WINDOW' => isset($_POST['add_file']),
'S_DISPLAY_PREVIEW' => ($preview && !sizeof($error)),
'S_EDIT_POST' => ($mode == 'edit'),
@@ -1006,9 +1001,9 @@ if (($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id &&
'L_POLL_OPTIONS_EXPLAIN'=> sprintf($user->lang['POLL_OPTIONS_EXPLAIN'], $config['max_poll_options']),
- 'POLL_TITLE' => $poll_title,
- 'POLL_OPTIONS' => ($poll_options) ? implode("\n", $poll_options) : '',
- 'POLL_MAX_OPTIONS' => ($poll_max_options) ? $poll_max_options : 1,
+ 'POLL_TITLE' => (isset($poll_title)) ? $poll_title : '',
+ 'POLL_OPTIONS' => (isset($poll_options) && $poll_options) ? implode("\n", $poll_options) : '',
+ 'POLL_MAX_OPTIONS' => (isset($poll_max_options)) ? (int) $poll_max_options : 1,
'POLL_LENGTH' => $poll_length)
);
}
@@ -1351,7 +1346,7 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
if ($mode == 'topic_review')
{
- $template->assign_var('QUOTE_IMG', $user->img('btn_quote', $user->lang['QUOTE_POST']));
+ $template->assign_var('QUOTE_IMG', $user->img('btn_quote', $user->lang['REPLY_WITH_QUOTE']));
}
return true;
@@ -1548,7 +1543,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'post_text' => $message,
'post_checksum' => $data['message_md5'],
'post_encoding' => $user->lang['ENCODING'],
- 'post_attachment' => (sizeof($filename_data['physical_filename'])) ? 1 : 0,
+ 'post_attachment' => (isset($filename_data['physical_filename']) && sizeof($filename_data['physical_filename'])) ? 1 : 0,
'bbcode_bitfield' => $data['bbcode_bitfield'],
'bbcode_uid' => $bbcode_uid,
'post_edit_locked' => $data['post_edit_locked']
@@ -1566,9 +1561,23 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
$sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';
}
- case 'edit_topic':
case 'edit_last_post':
+ if ($data['post_edit_reason'])
+ {
+ $sql_data[POSTS_TABLE]['sql'] = array(
+ 'post_edit_time' => $current_time
+ );
+
+ $sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';
+ }
+
+ case 'edit_topic':
+ if (!isset($sql_data[POSTS_TABLE]['sql']))
+ {
+ $sql_data[POSTS_TABLE]['sql'] = array();
+ }
+
$sql_data[POSTS_TABLE]['sql'] = array_merge($sql_data[POSTS_TABLE]['sql'], array(
'forum_id' => ($topic_type == POST_GLOBAL) ? 0 : $data['forum_id'],
'poster_id' => $data['poster_id'],
@@ -1586,7 +1595,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'post_edit_user' => (int) $data['post_edit_user'],
'post_checksum' => $data['message_md5'],
'post_encoding' => $user->lang['ENCODING'],
- 'post_attachment' => (sizeof($filename_data['physical_filename'])) ? 1 : 0,
+ 'post_attachment' => (isset($filename_data['physical_filename']) && sizeof($filename_data['physical_filename'])) ? 1 : 0,
'bbcode_bitfield' => $data['bbcode_bitfield'],
'bbcode_uid' => $bbcode_uid,
'post_edit_locked' => $data['post_edit_locked'])
@@ -1608,10 +1617,10 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'topic_first_poster_name' => ($user->data['user_id'] == ANONYMOUS && $username) ? stripslashes($username) : $user->data['username'],
'topic_type' => $topic_type,
'topic_time_limit' => ($topic_type == POST_STICKY || $topic_type == POST_ANNOUNCE) ? ($data['topic_time_limit'] * 86400) : 0,
- 'topic_attachment' => (sizeof($filename_data['physical_filename'])) ? 1 : 0
+ 'topic_attachment' => (isset($filename_data['physical_filename']) && sizeof($filename_data['physical_filename'])) ? 1 : 0
);
- if ($poll['poll_options'])
+ if (isset($poll['poll_options']) && !empty($poll['poll_options']))
{
$sql_data[TOPICS_TABLE]['sql'] = array_merge($sql_data[TOPICS_TABLE]['sql'], array(
'poll_title' => $poll['poll_title'],
@@ -1622,14 +1631,20 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
}
$sql_data[USERS_TABLE]['stat'][] = "user_lastpost_time = $current_time" . (($auth->acl_get('f_postcount', $data['forum_id'])) ? ', user_posts = user_posts + 1' : '');
- $sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts + 1'; //(!$auth->acl_get('f_moderate', $data['forum_id'])) ? 'forum_posts = forum_posts + 1' : '';
+ if (!$auth->acl_get('f_moderate', $data['forum_id']))
+ {
+ $sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts + 1';
+ }
$sql_data[FORUMS_TABLE]['stat'][] = 'forum_topics_real = forum_topics_real + 1' . ((!$auth->acl_get('f_moderate', $data['forum_id'])) ? ', forum_topics = forum_topics + 1' : '');
break;
case 'reply':
$sql_data[TOPICS_TABLE]['stat'][] = 'topic_replies_real = topic_replies_real + 1, topic_bumped = 0, topic_bumper = 0' . ((!$auth->acl_get('f_moderate', $data['forum_id'])) ? ', topic_replies = topic_replies + 1' : '');
$sql_data[USERS_TABLE]['stat'][] = "user_lastpost_time = $current_time" . (($auth->acl_get('f_postcount', $data['forum_id'])) ? ', user_posts = user_posts + 1' : '');
- $sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts + 1'; //(!$auth->acl_get('f_moderate', $data['forum_id'])) ? 'forum_posts = forum_posts + 1' : '';
+ if (!$auth->acl_get('f_moderate', $data['forum_id']))
+ {
+ $sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts + 1';
+ }
break;
case 'edit_topic':
@@ -1762,7 +1777,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
}
// Update Poll Tables
- if ($poll['poll_options'])
+ if (isset($poll['poll_options']) && !empty($poll['poll_options']))
{
$cur_poll_options = array();
@@ -1930,7 +1945,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
foreach ($sql_data as $table => $update_ary)
{
- if (implode('', $update_ary['stat']))
+ if (isset($update_ary['stat']) && implode('', $update_ary['stat']))
{
$db->sql_query("UPDATE $table SET " . implode(', ', $update_ary['stat']) . ' WHERE ' . $where_sql[$table]);
}