fluxbb-1.4.8 to fluxbb-1.4.9 Legend
Lines removed 
Lines changed
 Lines added

a/admin_bans.php b/admin_bans.php
 15:  15: 
 16:  16: 
 17: if ($pun_user['g_id'] != PUN_ADMIN && ($pun_user['g_moderator'] != '1' || $pun_user['g_mod_ban_users'] == '0')) 17: if ($pun_user['g_id'] != PUN_ADMIN && ($pun_user['g_moderator'] != '1' || $pun_user['g_mod_ban_users'] == '0'))
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_bans.php language file 20: // Load the admin_bans.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_bans.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_bans.php';
183:     confirm_referrer('admin_bans.php');183:     confirm_referrer('admin_bans.php');
184: 184: 
185:     $ban_user = pun_trim($_POST['ban_user']);185:     $ban_user = pun_trim($_POST['ban_user']);
186:     $ban_ip = trim($_POST['ban_ip']);186:     $ban_ip = pun_trim($_POST['ban_ip']);
187:     $ban_email = strtolower(trim($_POST['ban_email']));187:     $ban_email = strtolower(pun_trim($_POST['ban_email']));
188:     $ban_message = pun_trim($_POST['ban_message']);188:     $ban_message = pun_trim($_POST['ban_message']);
189:     $ban_expire = trim($_POST['ban_expire']);189:     $ban_expire = pun_trim($_POST['ban_expire']);
190: 190: 
191:     if ($ban_user == '' && $ban_ip == '' && $ban_email == '')191:     if ($ban_user == '' && $ban_ip == '' && $ban_email == '')
192:         message($lang_admin_bans['Must enter message']);192:         message($lang_admin_bans['Must enter message']);
330:     $form = array_map('pun_trim', $form);330:     $form = array_map('pun_trim', $form);
331:     $conditions = $query_str = array();331:     $conditions = $query_str = array();
332: 332: 
333:     $expire_after = isset($_GET['expire_after']) ? trim($_GET['expire_after']) : '';333:     $expire_after = isset($_GET['expire_after']) ? pun_trim($_GET['expire_after']) : '';
334:     $expire_before = isset($_GET['expire_before']) ? trim($_GET['expire_before']) : '';334:     $expire_before = isset($_GET['expire_before']) ? pun_trim($_GET['expire_before']) : '';
335:     $order_by = isset($_GET['order_by']) && in_array($_GET['order_by'], array('username', 'ip', 'email', 'expire')) ? 'b.'.$_GET['order_by'] : 'b.username';335:     $order_by = isset($_GET['order_by']) && in_array($_GET['order_by'], array('username', 'ip', 'email', 'expire')) ? 'b.'.$_GET['order_by'] : 'b.username';
336:     $direction = isset($_GET['direction']) && $_GET['direction'] == 'DESC' ? 'DESC' : 'ASC';336:     $direction = isset($_GET['direction']) && $_GET['direction'] == 'DESC' ? 'DESC' : 'ASC';
337: 337: 


a/admin_categories.php b/admin_categories.php
 15:  15: 
 16:  16: 
 17: if ($pun_user['g_id'] != PUN_ADMIN) 17: if ($pun_user['g_id'] != PUN_ADMIN)
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_categories.php language file 20: // Load the admin_categories.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_categories.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_categories.php';
133:     foreach ($categories as $cat_id => $cur_cat)133:     foreach ($categories as $cat_id => $cur_cat)
134:     {134:     {
135:         $cur_cat['name'] = pun_trim($cur_cat['name']);135:         $cur_cat['name'] = pun_trim($cur_cat['name']);
136:         $cur_cat['order'] = trim($cur_cat['order']);136:         $cur_cat['order'] = pun_trim($cur_cat['order']);
137: 137: 
138:         if ($cur_cat['name'] == '')138:         if ($cur_cat['name'] == '')
139:             message($lang_admin_categories['Must enter name message']);139:             message($lang_admin_categories['Must enter name message']);


a/admin_censoring.php b/admin_censoring.php
 15:  15: 
 16:  16: 
 17: if ($pun_user['g_id'] != PUN_ADMIN) 17: if ($pun_user['g_id'] != PUN_ADMIN)
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_censoring.php language file 20: // Load the admin_censoring.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_censoring.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_censoring.php';


a/admin_forums.php b/admin_forums.php
 15:  15: 
 16:  16: 
 17: if ($pun_user['g_id'] != PUN_ADMIN) 17: if ($pun_user['g_id'] != PUN_ADMIN)
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_forums.php language file 20: // Load the admin_forums.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_forums.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_forums.php';
159:         $forum_desc = pun_linebreaks(pun_trim($_POST['forum_desc']));159:         $forum_desc = pun_linebreaks(pun_trim($_POST['forum_desc']));
160:         $cat_id = intval($_POST['cat_id']);160:         $cat_id = intval($_POST['cat_id']);
161:         $sort_by = intval($_POST['sort_by']);161:         $sort_by = intval($_POST['sort_by']);
162:         $redirect_url = isset($_POST['redirect_url']) ? trim($_POST['redirect_url']) : null;162:         $redirect_url = isset($_POST['redirect_url']) ? pun_trim($_POST['redirect_url']) : null;
163: 163: 
164:         if ($forum_name == '')164:         if ($forum_name == '')
165:             message($lang_admin_forums['Must enter name message']);165:             message($lang_admin_forums['Must enter name message']);


a/admin_groups.php b/admin_groups.php
 15:  15: 
 16:  16: 
 17: if ($pun_user['g_id'] != PUN_ADMIN) 17: if ($pun_user['g_id'] != PUN_ADMIN)
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_censoring.php language file 20: // Load the admin_censoring.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_groups.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_groups.php';
267:     $search = isset($_POST['search']) ? intval($_POST['search']) : '1';267:     $search = isset($_POST['search']) ? intval($_POST['search']) : '1';
268:     $search_users = isset($_POST['search_users']) ? intval($_POST['search_users']) : '1';268:     $search_users = isset($_POST['search_users']) ? intval($_POST['search_users']) : '1';
269:     $send_email = (isset($_POST['send_email']) && $_POST['send_email'] == '1') || $is_admin_group ? '1' : '0';269:     $send_email = (isset($_POST['send_email']) && $_POST['send_email'] == '1') || $is_admin_group ? '1' : '0';
270:     $post_flood = isset($_POST['post_flood']) ? intval($_POST['post_flood']) : '0';270:     $post_flood = (isset($_POST['post_flood']) && $_POST['post_flood'] >= 0) ? intval($_POST['post_flood']) : '0';
271:     $search_flood = isset($_POST['search_flood']) ? intval($_POST['search_flood']) : '0';271:     $search_flood = (isset($_POST['search_flood']) && $_POST['search_flood'] >= 0) ? intval($_POST['search_flood']) : '0';
272:     $email_flood = isset($_POST['email_flood']) ? intval($_POST['email_flood']) : '0';272:     $email_flood = (isset($_POST['email_flood']) && $_POST['email_flood'] >= 0) ? intval($_POST['email_flood']) : '0';
273:     $report_flood = isset($_POST['report_flood']) ? intval($_POST['report_flood']) : '0';273:     $report_flood = (isset($_POST['report_flood']) && $_POST['report_flood'] >= 0) ? intval($_POST['report_flood']) : '0';
274: 274: 
275:     if ($title == '')275:     if ($title == '')
276:         message($lang_admin_groups['Must enter title message']);276:         message($lang_admin_groups['Must enter title message']);


a/admin_index.php b/admin_index.php
 15:  15: 
 16:  16: 
 17: if (!$pun_user['is_admmod']) 17: if (!$pun_user['is_admmod'])
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_index.php language file 20: // Load the admin_index.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_index.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_index.php';


a/admin_loader.php b/admin_loader.php
 15:  15: 
 16:  16: 
 17: if (!$pun_user['is_admmod']) 17: if (!$pun_user['is_admmod'])
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // The plugin to load should be supplied via GET 20: // The plugin to load should be supplied via GET
 21: $plugin = isset($_GET['plugin']) ? $_GET['plugin'] : ''; 21: $plugin = isset($_GET['plugin']) ? $_GET['plugin'] : '';
 25: // AP_ == Admins only, AMP_ == admins and moderators 25: // AP_ == Admins only, AMP_ == admins and moderators
 26: $prefix = substr($plugin, 0, strpos($plugin, '_')); 26: $prefix = substr($plugin, 0, strpos($plugin, '_'));
 27: if ($pun_user['g_moderator'] == '1' && $prefix == 'AP') 27: if ($pun_user['g_moderator'] == '1' && $prefix == 'AP')
 28:     message($lang_common['No permission']); 28:     message($lang_common['No permission'], false, '403 Forbidden');
 29:  29: 
 30: // Make sure the file actually exists 30: // Make sure the file actually exists
 31: if (!file_exists(PUN_ROOT.'plugins/'.$plugin)) 31: if (!file_exists(PUN_ROOT.'plugins/'.$plugin))


a/admin_maintenance.php b/admin_maintenance.php
 17:  17: 
 18:  18: 
 19: if ($pun_user['g_id'] != PUN_ADMIN) 19: if ($pun_user['g_id'] != PUN_ADMIN)
 20:     message($lang_common['No permission']); 20:     message($lang_common['No permission'], false, '403 Forbidden');
 21:  21: 
 22: // Load the admin_maintenance.php language file 22: // Load the admin_maintenance.php language file
 23: require PUN_ROOT.'lang/'.$admin_language.'/admin_maintenance.php'; 23: require PUN_ROOT.'lang/'.$admin_language.'/admin_maintenance.php';
 24:  24: 
 25: $action = isset($_REQUEST['action']) ? trim($_REQUEST['action']) : ''; 25: $action = isset($_REQUEST['action']) ? pun_trim($_REQUEST['action']) : '';
 26:  26: 
 27: if ($action == 'rebuild') 27: if ($action == 'rebuild')
 28: { 28: {
125: 125: 
126: if ($action == 'prune')126: if ($action == 'prune')
127: {127: {
128:     $prune_from = trim($_POST['prune_from']);128:     $prune_from = pun_trim($_POST['prune_from']);
129:     $prune_sticky = intval($_POST['prune_sticky']);129:     $prune_sticky = intval($_POST['prune_sticky']);
130: 130: 
131:     if (isset($_POST['prune_comply']))131:     if (isset($_POST['prune_comply']))
172:         redirect('admin_maintenance.php', $lang_admin_maintenance['Posts pruned redirect']);172:         redirect('admin_maintenance.php', $lang_admin_maintenance['Posts pruned redirect']);
173:     }173:     }
174: 174: 
175:     $prune_days = trim($_POST['req_prune_days']);175:     $prune_days = pun_trim($_POST['req_prune_days']);
176:     if ($prune_days == '' || preg_match('%[^0-9]%', $prune_days))176:     if ($prune_days == '' || preg_match('%[^0-9]%', $prune_days))
177:         message($lang_admin_maintenance['Days must be integer message']);177:         message($lang_admin_maintenance['Days must be integer message']);
178: 178: 


a/admin_options.php b/admin_options.php
 15:  15: 
 16:  16: 
 17: if ($pun_user['g_id'] != PUN_ADMIN) 17: if ($pun_user['g_id'] != PUN_ADMIN)
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_options.php language file 20: // Load the admin_options.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_options.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_options.php';
 34:         'default_style'            => pun_trim($_POST['form']['default_style']), 34:         'default_style'            => pun_trim($_POST['form']['default_style']),
 35:         'time_format'            => pun_trim($_POST['form']['time_format']), 35:         'time_format'            => pun_trim($_POST['form']['time_format']),
 36:         'date_format'            => pun_trim($_POST['form']['date_format']), 36:         'date_format'            => pun_trim($_POST['form']['date_format']),
 37:         'timeout_visit'            => intval($_POST['form']['timeout_visit']), 37:         'timeout_visit'            => (intval($_POST['form']['timeout_visit']) > 0) ? intval($_POST['form']['timeout_visit']) : 1,
 38:         'timeout_online'        => intval($_POST['form']['timeout_online']), 38:         'timeout_online'        => (intval($_POST['form']['timeout_online']) > 0) ? intval($_POST['form']['timeout_online']) : 1,
 39:         'redirect_delay'        => intval($_POST['form']['redirect_delay']), 39:         'redirect_delay'        => (intval($_POST['form']['redirect_delay']) >= 0) ? intval($_POST['form']['redirect_delay']) : 0,
 40:         'show_version'            => $_POST['form']['show_version'] != '1' ? '0' : '1', 40:         'show_version'            => $_POST['form']['show_version'] != '1' ? '0' : '1',
 41:         'show_user_info'        => $_POST['form']['show_user_info'] != '1' ? '0' : '1', 41:         'show_user_info'        => $_POST['form']['show_user_info'] != '1' ? '0' : '1',
 42:         'show_post_count'        => $_POST['form']['show_post_count'] != '1' ? '0' : '1', 42:         'show_post_count'        => $_POST['form']['show_post_count'] != '1' ? '0' : '1',
 43:         'smilies'                => $_POST['form']['smilies'] != '1' ? '0' : '1', 43:         'smilies'                => $_POST['form']['smilies'] != '1' ? '0' : '1',
 44:         'smilies_sig'            => $_POST['form']['smilies_sig'] != '1' ? '0' : '1', 44:         'smilies_sig'            => $_POST['form']['smilies_sig'] != '1' ? '0' : '1',
 45:         'make_links'            => $_POST['form']['make_links'] != '1' ? '0' : '1', 45:         'make_links'            => $_POST['form']['make_links'] != '1' ? '0' : '1',
 46:         'topic_review'            => intval($_POST['form']['topic_review']), 46:         'topic_review'            => (intval($_POST['form']['topic_review']) >= 0) ? intval($_POST['form']['topic_review']) : 0,
 47:         'disp_topics_default'    => intval($_POST['form']['disp_topics_default']), 47:         'disp_topics_default'    => intval($_POST['form']['disp_topics_default']),
 48:         'disp_posts_default'    => intval($_POST['form']['disp_posts_default']), 48:         'disp_posts_default'    => intval($_POST['form']['disp_posts_default']),
 49:         'indent_num_spaces'        => intval($_POST['form']['indent_num_spaces']), 49:         'indent_num_spaces'        => (intval($_POST['form']['indent_num_spaces']) >= 0) ? intval($_POST['form']['indent_num_spaces']) : 0,
 50:         'quote_depth'            => intval($_POST['form']['quote_depth']), 50:         'quote_depth'            => (intval($_POST['form']['quote_depth']) > 0) ? intval($_POST['form']['quote_depth']) : 1,
 51:         'quickpost'                => $_POST['form']['quickpost'] != '1' ? '0' : '1', 51:         'quickpost'                => $_POST['form']['quickpost'] != '1' ? '0' : '1',
 52:         'users_online'            => $_POST['form']['users_online'] != '1' ? '0' : '1', 52:         'users_online'            => $_POST['form']['users_online'] != '1' ? '0' : '1',
 53:         'censoring'                => $_POST['form']['censoring'] != '1' ? '0' : '1', 53:         'censoring'                => $_POST['form']['censoring'] != '1' ? '0' : '1',
 65:         'mailing_list'            => pun_trim($_POST['form']['mailing_list']), 65:         'mailing_list'            => pun_trim($_POST['form']['mailing_list']),
 66:         'avatars'                => $_POST['form']['avatars'] != '1' ? '0' : '1', 66:         'avatars'                => $_POST['form']['avatars'] != '1' ? '0' : '1',
 67:         'avatars_dir'            => pun_trim($_POST['form']['avatars_dir']), 67:         'avatars_dir'            => pun_trim($_POST['form']['avatars_dir']),
 68:         'avatars_width'            => intval($_POST['form']['avatars_width']), 68:         'avatars_width'            => (intval($_POST['form']['avatars_width']) > 0) ? intval($_POST['form']['avatars_width']) : 1,
 69:         'avatars_height'        => intval($_POST['form']['avatars_height']), 69:         'avatars_height'        => (intval($_POST['form']['avatars_height']) > 0) ? intval($_POST['form']['avatars_height']) : 1,
 70:         'avatars_size'            => intval($_POST['form']['avatars_size']), 70:         'avatars_size'            => (intval($_POST['form']['avatars_size']) > 0) ? intval($_POST['form']['avatars_size']) : 1,
 71:         'admin_email'            => strtolower(pun_trim($_POST['form']['admin_email'])), 71:         'admin_email'            => strtolower(pun_trim($_POST['form']['admin_email'])),
 72:         'webmaster_email'        => strtolower(pun_trim($_POST['form']['webmaster_email'])), 72:         'webmaster_email'        => strtolower(pun_trim($_POST['form']['webmaster_email'])),
 73:         'forum_subscriptions'    => $_POST['form']['forum_subscriptions'] != '1' ? '0' : '1', 73:         'forum_subscriptions'    => $_POST['form']['forum_subscriptions'] != '1' ? '0' : '1',
303:                                 <tr>303:                                 <tr>
304:                                     <th scope="row"><?php echo $lang_admin_options['DST label'] ?></th>304:                                     <th scope="row"><?php echo $lang_admin_options['DST label'] ?></th>
305:                                     <td>305:                                     <td>
306:                                         <input type="radio" name="form[default_dst]" value="1"<?php if ($pun_config['o_default_dst'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[default_dst]" value="0"<?php if ($pun_config['o_default_dst'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>306:                                         <input type="radio" name="form[default_dst]" id="form_default_dst_1" value="1"<?php if ($pun_config['o_default_dst'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_default_dst_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[default_dst]" id="form_default_dst_0" value="0"<?php if ($pun_config['o_default_dst'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_default_dst_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
307:                                         <span><?php echo $lang_admin_options['DST help'] ?></span>307:                                         <span><?php echo $lang_admin_options['DST help'] ?></span>
308:                                     </td>308:                                     </td>
309:                                 </tr>309:                                 </tr>
411:                                 <tr>411:                                 <tr>
412:                                     <th scope="row"><?php echo $lang_admin_options['Version number label'] ?></th>412:                                     <th scope="row"><?php echo $lang_admin_options['Version number label'] ?></th>
413:                                     <td>413:                                     <td>
414:                                         <input type="radio" name="form[show_version]" value="1"<?php if ($pun_config['o_show_version'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[show_version]" value="0"<?php if ($pun_config['o_show_version'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>414:                                         <input type="radio" name="form[show_version]" id="form_show_version_1" value="1"<?php if ($pun_config['o_show_version'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_show_version_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[show_version]" id="form_show_version_0" value="0"<?php if ($pun_config['o_show_version'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_show_version_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
415:                                         <span><?php echo $lang_admin_options['Version number help'] ?></span>415:                                         <span><?php echo $lang_admin_options['Version number help'] ?></span>
416:                                     </td>416:                                     </td>
417:                                 </tr>417:                                 </tr>
418:                                 <tr>418:                                 <tr>
419:                                     <th scope="row"><?php echo $lang_admin_options['Info in posts label'] ?></th>419:                                     <th scope="row"><?php echo $lang_admin_options['Info in posts label'] ?></th>
420:                                     <td>420:                                     <td>
421:                                         <input type="radio" name="form[show_user_info]" value="1"<?php if ($pun_config['o_show_user_info'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[show_user_info]" value="0"<?php if ($pun_config['o_show_user_info'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>421:                                         <input type="radio" name="form[show_user_info]" id="form_show_user_info_1" value="1"<?php if ($pun_config['o_show_user_info'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_show_user_info_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[show_user_info]" id="form_show_user_info_0" value="0"<?php if ($pun_config['o_show_user_info'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_show_user_info_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
422:                                         <span><?php echo $lang_admin_options['Info in posts help'] ?></span>422:                                         <span><?php echo $lang_admin_options['Info in posts help'] ?></span>
423:                                     </td>423:                                     </td>
424:                                 </tr>424:                                 </tr>
425:                                 <tr>425:                                 <tr>
426:                                     <th scope="row"><?php echo $lang_admin_options['Post count label'] ?></th>426:                                     <th scope="row"><?php echo $lang_admin_options['Post count label'] ?></th>
427:                                     <td>427:                                     <td>
428:                                         <input type="radio" name="form[show_post_count]" value="1"<?php if ($pun_config['o_show_post_count'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[show_post_count]" value="0"<?php if ($pun_config['o_show_post_count'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>428:                                         <input type="radio" name="form[show_post_count]" id="form_show_post_count_1" value="1"<?php if ($pun_config['o_show_post_count'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_show_post_count_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[show_post_count]" id="form_show_post_count_0" value="0"<?php if ($pun_config['o_show_post_count'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_show_post_count_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
429:                                         <span><?php echo $lang_admin_options['Post count help'] ?></span>429:                                         <span><?php echo $lang_admin_options['Post count help'] ?></span>
430:                                     </td>430:                                     </td>
431:                                 </tr>431:                                 </tr>
432:                                 <tr>432:                                 <tr>
433:                                     <th scope="row"><?php echo $lang_admin_options['Smilies label'] ?></th>433:                                     <th scope="row"><?php echo $lang_admin_options['Smilies label'] ?></th>
434:                                     <td>434:                                     <td>
435:                                         <input type="radio" name="form[smilies]" value="1"<?php if ($pun_config['o_smilies'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[smilies]" value="0"<?php if ($pun_config['o_smilies'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>435:                                         <input type="radio" name="form[smilies]" id="form_smilies_1" value="1"<?php if ($pun_config['o_smilies'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_smilies_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[smilies]" id="form_smilies_0" value="0"<?php if ($pun_config['o_smilies'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_smilies_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
436:                                         <span><?php echo $lang_admin_options['Smilies help'] ?></span>436:                                         <span><?php echo $lang_admin_options['Smilies help'] ?></span>
437:                                     </td>437:                                     </td>
438:                                 </tr>438:                                 </tr>
439:                                 <tr>439:                                 <tr>
440:                                     <th scope="row"><?php echo $lang_admin_options['Smilies sigs label'] ?></th>440:                                     <th scope="row"><?php echo $lang_admin_options['Smilies sigs label'] ?></th>
441:                                     <td>441:                                     <td>
442:                                         <input type="radio" name="form[smilies_sig]" value="1"<?php if ($pun_config['o_smilies_sig'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[smilies_sig]" value="0"<?php if ($pun_config['o_smilies_sig'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>442:                                         <input type="radio" name="form[smilies_sig]" id="form_smilies_sig_1" value="1"<?php if ($pun_config['o_smilies_sig'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_smilies_sig_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[smilies_sig]" id="form_smilies_sig_0" value="0"<?php if ($pun_config['o_smilies_sig'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_smilies_sig_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
443:                                         <span><?php echo $lang_admin_options['Smilies sigs help'] ?></span>443:                                         <span><?php echo $lang_admin_options['Smilies sigs help'] ?></span>
444:                                     </td>444:                                     </td>
445:                                 </tr>445:                                 </tr>
446:                                 <tr>446:                                 <tr>
447:                                     <th scope="row"><?php echo $lang_admin_options['Clickable links label'] ?></th>447:                                     <th scope="row"><?php echo $lang_admin_options['Clickable links label'] ?></th>
448:                                     <td>448:                                     <td>
449:                                         <input type="radio" name="form[make_links]" value="1"<?php if ($pun_config['o_make_links'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[make_links]" value="0"<?php if ($pun_config['o_make_links'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>449:                                         <input type="radio" name="form[make_links]" id="form_make_links_1" value="1"<?php if ($pun_config['o_make_links'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_make_links_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[make_links]" id="form_make_links_0" value="0"<?php if ($pun_config['o_make_links'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_make_links_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
450:                                         <span><?php echo $lang_admin_options['Clickable links help'] ?></span>450:                                         <span><?php echo $lang_admin_options['Clickable links help'] ?></span>
451:                                     </td>451:                                     </td>
452:                                 </tr>452:                                 </tr>
497:                                 <tr>497:                                 <tr>
498:                                     <th scope="row"><?php echo $lang_admin_options['Quick post label'] ?></th>498:                                     <th scope="row"><?php echo $lang_admin_options['Quick post label'] ?></th>
499:                                     <td>499:                                     <td>
500:                                         <input type="radio" name="form[quickpost]" value="1"<?php if ($pun_config['o_quickpost'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[quickpost]" value="0"<?php if ($pun_config['o_quickpost'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>500:                                         <input type="radio" name="form[quickpost]" id="form_quickpost_1" value="1"<?php if ($pun_config['o_quickpost'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_quickpost_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[quickpost]" id="form_quickpost_0" value="0"<?php if ($pun_config['o_quickpost'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_quickpost_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
501:                                         <span><?php echo $lang_admin_options['Quick post help'] ?></span>501:                                         <span><?php echo $lang_admin_options['Quick post help'] ?></span>
502:                                     </td>502:                                     </td>
503:                                 </tr>503:                                 </tr>
504:                                 <tr>504:                                 <tr>
505:                                     <th scope="row"><?php echo $lang_admin_options['Users online label'] ?></th>505:                                     <th scope="row"><?php echo $lang_admin_options['Users online label'] ?></th>
506:                                     <td>506:                                     <td>
507:                                         <input type="radio" name="form[users_online]" value="1"<?php if ($pun_config['o_users_online'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[users_online]" value="0"<?php if ($pun_config['o_users_online'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>507:                                         <input type="radio" name="form[users_online]" id="form_users_online_1" value="1"<?php if ($pun_config['o_users_online'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_users_online_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[users_online]" id="form_users_online_0" value="0"<?php if ($pun_config['o_users_online'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_users_online_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
508:                                         <span><?php echo $lang_admin_options['Users online help'] ?></span>508:                                         <span><?php echo $lang_admin_options['Users online help'] ?></span>
509:                                     </td>509:                                     </td>
510:                                 </tr>510:                                 </tr>
511:                                 <tr>511:                                 <tr>
512:                                     <th scope="row"><a name="censoring"><?php echo $lang_admin_options['Censor words label'] ?></a></th>512:                                     <th scope="row"><a name="censoring"></a><?php echo $lang_admin_options['Censor words label'] ?></th>
513:                                     <td>513:                                     <td>
514:                                         <input type="radio" name="form[censoring]" value="1"<?php if ($pun_config['o_censoring'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[censoring]" value="0"<?php if ($pun_config['o_censoring'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>514:                                         <input type="radio" name="form[censoring]" id="form_censoring_1" value="1"<?php if ($pun_config['o_censoring'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_censoring_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[censoring]" id="form_censoring_0" value="0"<?php if ($pun_config['o_censoring'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_censoring_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
515:                                         <span><?php printf($lang_admin_options['Censor words help'], '<a href="admin_censoring.php">'.$lang_admin_common['Censoring'].'</a>') ?></span>515:                                         <span><?php printf($lang_admin_options['Censor words help'], '<a href="admin_censoring.php">'.$lang_admin_common['Censoring'].'</a>') ?></span>
516:                                     </td>516:                                     </td>
517:                                 </tr>517:                                 </tr>
518:                                 <tr>518:                                 <tr>
519:                                     <th scope="row"><a name="signatures"><?php echo $lang_admin_options['Signatures label'] ?></a></th>519:                                     <th scope="row"><a name="signatures"></a><?php echo $lang_admin_options['Signatures label'] ?></th>
520:                                     <td>520:                                     <td>
521:                                         <input type="radio" name="form[signatures]" value="1"<?php if ($pun_config['o_signatures'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[signatures]" value="0"<?php if ($pun_config['o_signatures'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>521:                                         <input type="radio" name="form[signatures]" id="form_signatures_1" value="1"<?php if ($pun_config['o_signatures'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_signatures_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[signatures]" id="form_signatures_0" value="0"<?php if ($pun_config['o_signatures'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_signatures_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
522:                                         <span><?php echo $lang_admin_options['Signatures help'] ?></span>522:                                         <span><?php echo $lang_admin_options['Signatures help'] ?></span>
523:                                     </td>523:                                     </td>
524:                                 </tr>524:                                 </tr>
525:                                 <tr>525:                                 <tr>
526:                                     <th scope="row"><a name="ranks"><?php echo $lang_admin_options['User ranks label'] ?></a></th>526:                                     <th scope="row"><a name="ranks"></a><?php echo $lang_admin_options['User ranks label'] ?></th>
527:                                     <td>527:                                     <td>
528:                                         <input type="radio" name="form[ranks]" value="1"<?php if ($pun_config['o_ranks'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[ranks]" value="0"<?php if ($pun_config['o_ranks'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>528:                                         <input type="radio" name="form[ranks]" id="form_ranks_1" value="1"<?php if ($pun_config['o_ranks'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_ranks_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[ranks]" id="form_ranks_0" value="0"<?php if ($pun_config['o_ranks'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_ranks_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
529:                                         <span><?php printf($lang_admin_options['User ranks help'], '<a href="admin_ranks.php">'.$lang_admin_common['Ranks'].'</a>') ?></span>529:                                         <span><?php printf($lang_admin_options['User ranks help'], '<a href="admin_ranks.php">'.$lang_admin_common['Ranks'].'</a>') ?></span>
530:                                     </td>530:                                     </td>
531:                                 </tr>531:                                 </tr>
532:                                 <tr>532:                                 <tr>
533:                                     <th scope="row"><?php echo $lang_admin_options['User has posted label'] ?></th>533:                                     <th scope="row"><?php echo $lang_admin_options['User has posted label'] ?></th>
534:                                     <td>534:                                     <td>
535:                                         <input type="radio" name="form[show_dot]" value="1"<?php if ($pun_config['o_show_dot'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[show_dot]" value="0"<?php if ($pun_config['o_show_dot'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>535:                                         <input type="radio" name="form[show_dot]" id="form_show_dot_1" value="1"<?php if ($pun_config['o_show_dot'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_show_dot_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[show_dot]" id="form_show_dot_0" value="0"<?php if ($pun_config['o_show_dot'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_show_dot_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
536:                                         <span><?php echo $lang_admin_options['User has posted help'] ?></span>536:                                         <span><?php echo $lang_admin_options['User has posted help'] ?></span>
537:                                     </td>537:                                     </td>
538:                                 </tr>538:                                 </tr>
539:                                 <tr>539:                                 <tr>
540:                                     <th scope="row"><?php echo $lang_admin_options['Topic views label'] ?></th>540:                                     <th scope="row"><?php echo $lang_admin_options['Topic views label'] ?></th>
541:                                     <td>541:                                     <td>
542:                                         <input type="radio" name="form[topic_views]" value="1"<?php if ($pun_config['o_topic_views'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[topic_views]" value="0"<?php if ($pun_config['o_topic_views'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>542:                                         <input type="radio" name="form[topic_views]" id="form_topic_views_1" value="1"<?php if ($pun_config['o_topic_views'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_topic_views_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[topic_views]" id="form_topic_views_0" value="0"<?php if ($pun_config['o_topic_views'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_topic_views_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
543:                                         <span><?php echo $lang_admin_options['Topic views help'] ?></span>543:                                         <span><?php echo $lang_admin_options['Topic views help'] ?></span>
544:                                     </td>544:                                     </td>
545:                                 </tr>545:                                 </tr>
546:                                 <tr>546:                                 <tr>
547:                                     <th scope="row"><?php echo $lang_admin_options['Quick jump label'] ?></th>547:                                     <th scope="row"><?php echo $lang_admin_options['Quick jump label'] ?></th>
548:                                     <td>548:                                     <td>
549:                                         <input type="radio" name="form[quickjump]" value="1"<?php if ($pun_config['o_quickjump'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[quickjump]" value="0"<?php if ($pun_config['o_quickjump'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>549:                                         <input type="radio" name="form[quickjump]" id="form_quickjump_1" value="1"<?php if ($pun_config['o_quickjump'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_quickjump_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[quickjump]" id="form_quickjump_0" value="0"<?php if ($pun_config['o_quickjump'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_quickjump_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
550:                                         <span><?php echo $lang_admin_options['Quick jump help'] ?></span>550:                                         <span><?php echo $lang_admin_options['Quick jump help'] ?></span>
551:                                     </td>551:                                     </td>
552:                                 </tr>552:                                 </tr>
553:                                 <tr>553:                                 <tr>
554:                                     <th scope="row"><?php echo $lang_admin_options['GZip label'] ?></th>554:                                     <th scope="row"><?php echo $lang_admin_options['GZip label'] ?></th>
555:                                     <td>555:                                     <td>
556:                                         <input type="radio" name="form[gzip]" value="1"<?php if ($pun_config['o_gzip'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[gzip]" value="0"<?php if ($pun_config['o_gzip'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>556:                                         <input type="radio" name="form[gzip]" id="form_gzip_1" value="1"<?php if ($pun_config['o_gzip'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_gzip_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[gzip]" id="form_gzip_0" value="0"<?php if ($pun_config['o_gzip'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_gzip_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
557:                                         <span><?php echo $lang_admin_options['GZip help'] ?></span>557:                                         <span><?php echo $lang_admin_options['GZip help'] ?></span>
558:                                     </td>558:                                     </td>
559:                                 </tr>559:                                 </tr>
560:                                 <tr>560:                                 <tr>
561:                                     <th scope="row"><?php echo $lang_admin_options['Search all label'] ?></th>561:                                     <th scope="row"><?php echo $lang_admin_options['Search all label'] ?></th>
562:                                     <td>562:                                     <td>
563:                                         <input type="radio" name="form[search_all_forums]" value="1"<?php if ($pun_config['o_search_all_forums'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[search_all_forums]" value="0"<?php if ($pun_config['o_search_all_forums'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>563:                                         <input type="radio" name="form[search_all_forums]" id="form_search_all_forums_1" value="1"<?php if ($pun_config['o_search_all_forums'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_search_all_forums_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[search_all_forums]" id="form_search_all_forums_0" value="0"<?php if ($pun_config['o_search_all_forums'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_search_all_forums_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
564:                                         <span><?php echo $lang_admin_options['Search all help'] ?></span>564:                                         <span><?php echo $lang_admin_options['Search all help'] ?></span>
565:                                     </td>565:                                     </td>
566:                                 </tr>566:                                 </tr>
583:                                 <tr>583:                                 <tr>
584:                                     <th scope="row"><?php echo $lang_admin_options['Default feed label'] ?></th>584:                                     <th scope="row"><?php echo $lang_admin_options['Default feed label'] ?></th>
585:                                     <td>585:                                     <td>
586:                                         <input type="radio" name="form[feed_type]" value="0"<?php if ($pun_config['o_feed_type'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_options['None'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[feed_type]" value="1"<?php if ($pun_config['o_feed_type'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_options['RSS'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[feed_type]" value="2"<?php if ($pun_config['o_feed_type'] == '2') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_options['Atom'] ?></strong>586:                                         <input type="radio" name="form[feed_type]" id="form_feed_type_0" value="0"<?php if ($pun_config['o_feed_type'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_options['None'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[feed_type]" id="form_feed_type_1" value="1"<?php if ($pun_config['o_feed_type'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_feed_type_0"><strong><?php echo $lang_admin_options['RSS'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[feed_type]" id="form_feed_type_2" value="2"<?php if ($pun_config['o_feed_type'] == '2') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_feed_type_1"><strong><?php echo $lang_admin_options['Atom'] ?></strong></label>
587:                                         <span><?php echo $lang_admin_options['Default feed help'] ?></span>587:                                         <span><?php echo $lang_admin_options['Default feed help'] ?></span>
588:                                     </td>588:                                     </td>
589:                                 </tr>589:                                 </tr>
616:                                 <tr>616:                                 <tr>
617:                                     <th scope="row"><?php echo $lang_admin_options['Reporting method label'] ?></th>617:                                     <th scope="row"><?php echo $lang_admin_options['Reporting method label'] ?></th>
618:                                     <td>618:                                     <td>
619:                                         <input type="radio" name="form[report_method]" value="0"<?php if ($pun_config['o_report_method'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_options['Internal'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[report_method]" value="1"<?php if ($pun_config['o_report_method'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_options['By e-mail'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[report_method]" value="2"<?php if ($pun_config['o_report_method'] == '2') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_options['Both'] ?></strong>619:                                         <input type="radio" name="form[report_method]" id="form_report_method_0" value="0"<?php if ($pun_config['o_report_method'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_options['Internal'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[report_method]" id="form_report_method_1" value="1"<?php if ($pun_config['o_report_method'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_report_method_0"><strong><?php echo $lang_admin_options['By e-mail'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[report_method]" id="form_report_method_2" value="2"<?php if ($pun_config['o_report_method'] == '2') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_report_method_1"><strong><?php echo $lang_admin_options['Both'] ?></strong></label>
620:                                         <span><?php echo $lang_admin_options['Reporting method help'] ?></span>620:                                         <span><?php echo $lang_admin_options['Reporting method help'] ?></span>
621:                                     </td>621:                                     </td>
622:                                 </tr>622:                                 </tr>
639:                                 <tr>639:                                 <tr>
640:                                     <th scope="row"><?php echo $lang_admin_options['Use avatars label'] ?></th>640:                                     <th scope="row"><?php echo $lang_admin_options['Use avatars label'] ?></th>
641:                                     <td>641:                                     <td>
642:                                         <input type="radio" name="form[avatars]" value="1"<?php if ($pun_config['o_avatars'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[avatars]" value="0"<?php if ($pun_config['o_avatars'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>642:                                         <input type="radio" name="form[avatars]" id="form_avatars_1" value="1"<?php if ($pun_config['o_avatars'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_avatars_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[avatars]" id="form_avatars_0" value="0"<?php if ($pun_config['o_avatars'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_avatars_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
643:                                         <span><?php echo $lang_admin_options['Use avatars help'] ?></span>643:                                         <span><?php echo $lang_admin_options['Use avatars help'] ?></span>
644:                                     </td>644:                                     </td>
645:                                 </tr>645:                                 </tr>
697:                                 <tr>697:                                 <tr>
698:                                     <th scope="row"><?php echo $lang_admin_options['Forum subscriptions label'] ?></th>698:                                     <th scope="row"><?php echo $lang_admin_options['Forum subscriptions label'] ?></th>
699:                                     <td>699:                                     <td>
700:                                         <input type="radio" name="form[forum_subscriptions]" value="1"<?php if ($pun_config['o_forum_subscriptions'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[forum_subscriptions]" value="0"<?php if ($pun_config['o_forum_subscriptions'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>700:                                         <input type="radio" name="form[forum_subscriptions]" id="form_forum_subscriptions_1" value="1"<?php if ($pun_config['o_forum_subscriptions'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_forum_subscriptions_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[forum_subscriptions]" id="form_forum_subscriptions_0" value="0"<?php if ($pun_config['o_forum_subscriptions'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_forum_subscriptions_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
701:                                         <span><?php echo $lang_admin_options['Forum subscriptions help'] ?></span>701:                                         <span><?php echo $lang_admin_options['Forum subscriptions help'] ?></span>
702:                                     </td>702:                                     </td>
703:                                 </tr>703:                                 </tr>
704:                                 <tr>704:                                 <tr>
705:                                     <th scope="row"><?php echo $lang_admin_options['Topic subscriptions label'] ?></th>705:                                     <th scope="row"><?php echo $lang_admin_options['Topic subscriptions label'] ?></th>
706:                                     <td>706:                                     <td>
707:                                         <input type="radio" name="form[topic_subscriptions]" value="1"<?php if ($pun_config['o_topic_subscriptions'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[topic_subscriptions]" value="0"<?php if ($pun_config['o_topic_subscriptions'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>707:                                         <input type="radio" name="form[topic_subscriptions]" id="form_topic_subscriptions_1" value="1"<?php if ($pun_config['o_topic_subscriptions'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_topic_subscriptions_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[topic_subscriptions]" id="form_topic_subscriptions_0" value="0"<?php if ($pun_config['o_topic_subscriptions'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_topic_subscriptions_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
708:                                         <span><?php echo $lang_admin_options['Topic subscriptions help'] ?></span>708:                                         <span><?php echo $lang_admin_options['Topic subscriptions help'] ?></span>
709:                                     </td>709:                                     </td>
710:                                 </tr>710:                                 </tr>
725:                                 <tr>725:                                 <tr>
726:                                     <th scope="row"><?php echo $lang_admin_options['SMTP password label'] ?></th>726:                                     <th scope="row"><?php echo $lang_admin_options['SMTP password label'] ?></th>
727:                                     <td>727:                                     <td>
728:                                         <span><input type="checkbox" name="form[smtp_change_pass]" value="1" />&#160;&#160;<?php echo $lang_admin_options['SMTP change password help'] ?></span>728:                                         <span><input type="checkbox" name="form[smtp_change_pass]" id="form_smtp_change_pass" value="1" />&#160;&#160;<label class="conl" for="form_smtp_change_pass"><?php echo $lang_admin_options['SMTP change password help'] ?></label></span>
729: <?php $smtp_pass = !empty($pun_config['o_smtp_pass']) ? random_key(pun_strlen($pun_config['o_smtp_pass']), true) : ''; ?>729: <?php $smtp_pass = !empty($pun_config['o_smtp_pass']) ? random_key(pun_strlen($pun_config['o_smtp_pass']), true) : ''; ?>
730:                                         <input type="password" name="form[smtp_pass1]" size="25" maxlength="50" value="<?php echo $smtp_pass ?>" />730:                                         <input type="password" name="form[smtp_pass1]" size="25" maxlength="50" value="<?php echo $smtp_pass ?>" />
731:                                         <input type="password" name="form[smtp_pass2]" size="25" maxlength="50" value="<?php echo $smtp_pass ?>" />731:                                         <input type="password" name="form[smtp_pass2]" size="25" maxlength="50" value="<?php echo $smtp_pass ?>" />
735:                                 <tr>735:                                 <tr>
736:                                     <th scope="row"><?php echo $lang_admin_options['SMTP SSL label'] ?></th>736:                                     <th scope="row"><?php echo $lang_admin_options['SMTP SSL label'] ?></th>
737:                                     <td>737:                                     <td>
738:                                         <input type="radio" name="form[smtp_ssl]" value="1"<?php if ($pun_config['o_smtp_ssl'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[smtp_ssl]" value="0"<?php if ($pun_config['o_smtp_ssl'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>738:                                         <input type="radio" name="form[smtp_ssl]" id="form_smtp_ssl_1" value="1"<?php if ($pun_config['o_smtp_ssl'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_smtp_ssl_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[smtp_ssl]" id="form_smtp_ssl_0" value="0"<?php if ($pun_config['o_smtp_ssl'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_smtp_ssl_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
739:                                         <span><?php echo $lang_admin_options['SMTP SSL help'] ?></span>739:                                         <span><?php echo $lang_admin_options['SMTP SSL help'] ?></span>
740:                                     </td>740:                                     </td>
741:                                 </tr>741:                                 </tr>
751:                                 <tr>751:                                 <tr>
752:                                     <th scope="row"><?php echo $lang_admin_options['Allow new label'] ?></th>752:                                     <th scope="row"><?php echo $lang_admin_options['Allow new label'] ?></th>
753:                                     <td>753:                                     <td>
754:                                         <input type="radio" name="form[regs_allow]" value="1"<?php if ($pun_config['o_regs_allow'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[regs_allow]" value="0"<?php if ($pun_config['o_regs_allow'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>754:                                         <input type="radio" name="form[regs_allow]" id="form_regs_allow_1" value="1"<?php if ($pun_config['o_regs_allow'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_regs_allow_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[regs_allow]" id="form_regs_allow_0" value="0"<?php if ($pun_config['o_regs_allow'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_regs_allow_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
755:                                         <span><?php echo $lang_admin_options['Allow new help'] ?></span>755:                                         <span><?php echo $lang_admin_options['Allow new help'] ?></span>
756:                                     </td>756:                                     </td>
757:                                 </tr>757:                                 </tr>
758:                                 <tr>758:                                 <tr>
759:                                     <th scope="row"><?php echo $lang_admin_options['Verify label'] ?></th>759:                                     <th scope="row"><?php echo $lang_admin_options['Verify label'] ?></th>
760:                                     <td>760:                                     <td>
761:                                         <input type="radio" name="form[regs_verify]" value="1"<?php if ($pun_config['o_regs_verify'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[regs_verify]" value="0"<?php if ($pun_config['o_regs_verify'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>761:                                         <input type="radio" name="form[regs_verify]" id="form_regs_verify_1" value="1"<?php if ($pun_config['o_regs_verify'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_regs_verify_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[regs_verify]" id="form_regs_verify_0" value="0"<?php if ($pun_config['o_regs_verify'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_regs_verify_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
762:                                         <span><?php echo $lang_admin_options['Verify help'] ?></span>762:                                         <span><?php echo $lang_admin_options['Verify help'] ?></span>
763:                                     </td>763:                                     </td>
764:                                 </tr>764:                                 </tr>
765:                                 <tr>765:                                 <tr>
766:                                     <th scope="row"><?php echo $lang_admin_options['Report new label'] ?></th>766:                                     <th scope="row"><?php echo $lang_admin_options['Report new label'] ?></th>
767:                                     <td>767:                                     <td>
768:                                         <input type="radio" name="form[regs_report]" value="1"<?php if ($pun_config['o_regs_report'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[regs_report]" value="0"<?php if ($pun_config['o_regs_report'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>768:                                         <input type="radio" name="form[regs_report]" id="form_regs_report_1" value="1"<?php if ($pun_config['o_regs_report'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_regs_report_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[regs_report]" id="form_regs_report_0" value="0"<?php if ($pun_config['o_regs_report'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_regs_report_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
769:                                         <span><?php echo $lang_admin_options['Report new help'] ?></span>769:                                         <span><?php echo $lang_admin_options['Report new help'] ?></span>
770:                                     </td>770:                                     </td>
771:                                 </tr>771:                                 </tr>
772:                                 <tr>772:                                 <tr>
773:                                     <th scope="row"><?php echo $lang_admin_options['Use rules label'] ?></th>773:                                     <th scope="row"><?php echo $lang_admin_options['Use rules label'] ?></th>
774:                                     <td>774:                                     <td>
775:                                         <input type="radio" name="form[rules]" value="1"<?php if ($pun_config['o_rules'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[rules]" value="0"<?php if ($pun_config['o_rules'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>775:                                         <input type="radio" name="form[rules]" id="form_rules_1" value="1"<?php if ($pun_config['o_rules'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_rules_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[rules]" id="form_rules_0" value="0"<?php if ($pun_config['o_rules'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_rules_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
776:                                         <span><?php echo $lang_admin_options['Use rules help'] ?></span>776:                                         <span><?php echo $lang_admin_options['Use rules help'] ?></span>
777:                                     </td>777:                                     </td>
778:                                 </tr>778:                                 </tr>
787:                                     <th scope="row"><?php echo $lang_admin_options['E-mail default label'] ?></th>787:                                     <th scope="row"><?php echo $lang_admin_options['E-mail default label'] ?></th>
788:                                     <td>788:                                     <td>
789:                                         <span><?php echo $lang_admin_options['E-mail default help'] ?></span>789:                                         <span><?php echo $lang_admin_options['E-mail default help'] ?></span>
790:                                         <input type="radio" name="form[default_email_setting]" value="0"<?php if ($pun_config['o_default_email_setting'] == '0') echo ' checked="checked"' ?> />&#160;<?php echo $lang_admin_options['Display e-mail label'] ?><br />790:                                         <input type="radio" name="form[default_email_setting]" id="form_default_email_setting_0" value="0"<?php if ($pun_config['o_default_email_setting'] == '0') echo ' checked="checked"' ?> />&#160;<?php echo $lang_admin_options['Display e-mail label'] ?><br />
791:                                         <input type="radio" name="form[default_email_setting]" value="1"<?php if ($pun_config['o_default_email_setting'] == '1') echo ' checked="checked"' ?> />&#160;<?php echo $lang_admin_options['Hide allow form label'] ?><br />791:                                         <input type="radio" name="form[default_email_setting]" id="form_default_email_setting_1" value="1"<?php if ($pun_config['o_default_email_setting'] == '1') echo ' checked="checked"' ?> />&#160;<?php echo $lang_admin_options['Hide allow form label'] ?><br />
792:                                         <input type="radio" name="form[default_email_setting]" value="2"<?php if ($pun_config['o_default_email_setting'] == '2') echo ' checked="checked"' ?> />&#160;<?php echo $lang_admin_options['Hide both label'] ?><br />792:                                         <input type="radio" name="form[default_email_setting]" id="form_default_email_setting_2" value="2"<?php if ($pun_config['o_default_email_setting'] == '2') echo ' checked="checked"' ?> />&#160;<?php echo $lang_admin_options['Hide both label'] ?><br />
793:                                     </td>793:                                     </td>
794:                                 </tr>794:                                 </tr>
795:                             </table>795:                             </table>
804:                                 <tr>804:                                 <tr>
805:                                     <th scope="row"><?php echo $lang_admin_options['Display announcement label'] ?></th>805:                                     <th scope="row"><?php echo $lang_admin_options['Display announcement label'] ?></th>
806:                                     <td>806:                                     <td>
807:                                         <input type="radio" name="form[announcement]" value="1"<?php if ($pun_config['o_announcement'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[announcement]" value="0"<?php if ($pun_config['o_announcement'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>807:                                         <input type="radio" name="form[announcement]" id="form_announcement_1" value="1"<?php if ($pun_config['o_announcement'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_announcement_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[announcement]" id="form_announcement_0" value="0"<?php if ($pun_config['o_announcement'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_announcement_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
808:                                         <span><?php echo $lang_admin_options['Display announcement help'] ?></span>808:                                         <span><?php echo $lang_admin_options['Display announcement help'] ?></span>
809:                                     </td>809:                                     </td>
810:                                 </tr>810:                                 </tr>
825:                         <div class="infldset">825:                         <div class="infldset">
826:                             <table class="aligntop" cellspacing="0">826:                             <table class="aligntop" cellspacing="0">
827:                                 <tr>827:                                 <tr>
828:                                     <th scope="row"><a name="maintenance"><?php echo $lang_admin_options['Maintenance mode label'] ?></a></th>828:                                     <th scope="row"><a name="maintenance"></a><?php echo $lang_admin_options['Maintenance mode label'] ?></th>
829:                                     <td>829:                                     <td>
830:                                         <input type="radio" name="form[maintenance]" value="1"<?php if ($pun_config['o_maintenance'] == '1') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="form[maintenance]" value="0"<?php if ($pun_config['o_maintenance'] == '0') echo ' checked="checked"' ?> />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>830:                                         <input type="radio" name="form[maintenance]" id="form_maintenance_1" value="1"<?php if ($pun_config['o_maintenance'] == '1') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_maintenance_1"><strong><?php echo $lang_admin_common['Yes'] ?></strong></label>&#160;&#160;&#160;<input type="radio" name="form[maintenance]" id="form_maintenance_0" value="0"<?php if ($pun_config['o_maintenance'] == '0') echo ' checked="checked"' ?> />&#160;<label class="conl" for="form_maintenance_0"><strong><?php echo $lang_admin_common['No'] ?></strong></label>
831:                                         <span><?php echo $lang_admin_options['Maintenance mode help'] ?></span>831:                                         <span><?php echo $lang_admin_options['Maintenance mode help'] ?></span>
832:                                     </td>832:                                     </td>
833:                                 </tr>833:                                 </tr>


a/admin_permissions.php b/admin_permissions.php
 15:  15: 
 16:  16: 
 17: if ($pun_user['g_id'] != PUN_ADMIN) 17: if ($pun_user['g_id'] != PUN_ADMIN)
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_permissions.php language file 20: // Load the admin_permissions.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_permissions.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_permissions.php';
 28:  28: 
 29:     foreach ($form as $key => $input) 29:     foreach ($form as $key => $input)
 30:     { 30:     {
  31:         // Make sure the input is never a negative value
  32:         if($input < 0)
  33:             $input = 0;
  34: 
 31:         // Only update values that have changed 35:         // Only update values that have changed
 32:         if (array_key_exists('p_'.$key, $pun_config) && $pun_config['p_'.$key] != $input) 36:         if (array_key_exists('p_'.$key, $pun_config) && $pun_config['p_'.$key] != $input)
 33:             $db->query('UPDATE '.$db->prefix.'config SET conf_value='.$input.' WHERE conf_name=\'p_'.$db->escape($key).'\'') or error('Unable to update board config', __FILE__, __LINE__, $db->error()); 37:             $db->query('UPDATE '.$db->prefix.'config SET conf_value='.$input.' WHERE conf_name=\'p_'.$db->escape($key).'\'') or error('Unable to update board config', __FILE__, __LINE__, $db->error());


a/admin_ranks.php b/admin_ranks.php
 15:  15: 
 16:  16: 
 17: if ($pun_user['g_id'] != PUN_ADMIN) 17: if ($pun_user['g_id'] != PUN_ADMIN)
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_ranks.php language file 20: // Load the admin_ranks.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_ranks.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_ranks.php';
 26:     confirm_referrer('admin_ranks.php'); 26:     confirm_referrer('admin_ranks.php');
 27:  27: 
 28:     $rank = pun_trim($_POST['new_rank']); 28:     $rank = pun_trim($_POST['new_rank']);
 29:     $min_posts = trim($_POST['new_min_posts']); 29:     $min_posts = pun_trim($_POST['new_min_posts']);
 30:  30: 
 31:     if ($rank == '') 31:     if ($rank == '')
 32:         message($lang_admin_ranks['Must enter title message']); 32:         message($lang_admin_ranks['Must enter title message']);
 59:     $id = intval(key($_POST['update'])); 59:     $id = intval(key($_POST['update']));
 60:  60: 
 61:     $rank = pun_trim($_POST['rank'][$id]); 61:     $rank = pun_trim($_POST['rank'][$id]);
 62:     $min_posts = trim($_POST['min_posts'][$id]); 62:     $min_posts = pun_trim($_POST['min_posts'][$id]);
 63:  63: 
 64:     if ($rank == '') 64:     if ($rank == '')
 65:         message($lang_admin_ranks['Must enter title message']); 65:         message($lang_admin_ranks['Must enter title message']);


a/admin_reports.php b/admin_reports.php
 15:  15: 
 16:  16: 
 17: if (!$pun_user['is_admmod']) 17: if (!$pun_user['is_admmod'])
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_reports.php language file 20: // Load the admin_reports.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_reports.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_reports.php';


a/admin_users.php b/admin_users.php
 15:  15: 
 16:  16: 
 17: if (!$pun_user['is_admmod']) 17: if (!$pun_user['is_admmod'])
 18:     message($lang_common['No permission']); 18:     message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20: // Load the admin_users.php language file 20: // Load the admin_users.php language file
 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_users.php'; 21: require PUN_ROOT.'lang/'.$admin_language.'/admin_users.php';
123: 123: 
124: if (isset($_GET['show_users']))124: if (isset($_GET['show_users']))
125: {125: {
126:     $ip = trim($_GET['show_users']);126:     $ip = pun_trim($_GET['show_users']);
127: 127: 
128:     if (!@preg_match('%^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$%', $ip) && !@preg_match('%^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$%', $ip))128:     if (!@preg_match('%^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$%', $ip) && !@preg_match('%^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$%', $ip))
129:         message($lang_admin_users['Bad IP message']);129:         message($lang_admin_users['Bad IP message']);
257: else if (isset($_POST['move_users']) || isset($_POST['move_users_comply']))257: else if (isset($_POST['move_users']) || isset($_POST['move_users_comply']))
258: {258: {
259:     if ($pun_user['g_id'] > PUN_ADMIN)259:     if ($pun_user['g_id'] > PUN_ADMIN)
260:         message($lang_common['No permission']);260:         message($lang_common['No permission'], false, '403 Forbidden');
261: 261: 
262:     confirm_referrer('admin_users.php');262:     confirm_referrer('admin_users.php');
263: 263: 
383: else if (isset($_POST['delete_users']) || isset($_POST['delete_users_comply']))383: else if (isset($_POST['delete_users']) || isset($_POST['delete_users_comply']))
384: {384: {
385:     if ($pun_user['g_id'] > PUN_ADMIN)385:     if ($pun_user['g_id'] > PUN_ADMIN)
386:         message($lang_common['No permission']);386:         message($lang_common['No permission'], false, '403 Forbidden');
387: 387: 
388:     confirm_referrer('admin_users.php');388:     confirm_referrer('admin_users.php');
389: 389: 
532: else if (isset($_POST['ban_users']) || isset($_POST['ban_users_comply']))532: else if (isset($_POST['ban_users']) || isset($_POST['ban_users_comply']))
533: {533: {
534:     if ($pun_user['g_id'] != PUN_ADMIN && ($pun_user['g_moderator'] != '1' || $pun_user['g_mod_ban_users'] == '0'))534:     if ($pun_user['g_id'] != PUN_ADMIN && ($pun_user['g_moderator'] != '1' || $pun_user['g_mod_ban_users'] == '0'))
535:         message($lang_common['No permission']);535:         message($lang_common['No permission'], false, '403 Forbidden');
536: 536: 
537:     confirm_referrer('admin_users.php');537:     confirm_referrer('admin_users.php');
538: 538: 
680:     $form = array_map('pun_trim', $form);680:     $form = array_map('pun_trim', $form);
681:     $conditions = $query_str = array();681:     $conditions = $query_str = array();
682: 682: 
683:     $posts_greater = isset($_GET['posts_greater']) ? trim($_GET['posts_greater']) : '';683:     $posts_greater = isset($_GET['posts_greater']) ? pun_trim($_GET['posts_greater']) : '';
684:     $posts_less = isset($_GET['posts_less']) ? trim($_GET['posts_less']) : '';684:     $posts_less = isset($_GET['posts_less']) ? pun_trim($_GET['posts_less']) : '';
685:     $last_post_after = isset($_GET['last_post_after']) ? trim($_GET['last_post_after']) : '';685:     $last_post_after = isset($_GET['last_post_after']) ? pun_trim($_GET['last_post_after']) : '';
686:     $last_post_before = isset($_GET['last_post_before']) ? trim($_GET['last_post_before']) : '';686:     $last_post_before = isset($_GET['last_post_before']) ? pun_trim($_GET['last_post_before']) : '';
687:     $last_visit_after = isset($_GET['last_visit_after']) ? trim($_GET['last_visit_after']) : '';687:     $last_visit_after = isset($_GET['last_visit_after']) ? pun_trim($_GET['last_visit_after']) : '';
688:     $last_visit_before = isset($_GET['last_visit_before']) ? trim($_GET['last_visit_before']) : '';688:     $last_visit_before = isset($_GET['last_visit_before']) ? pun_trim($_GET['last_visit_before']) : '';
689:     $registered_after = isset($_GET['registered_after']) ? trim($_GET['registered_after']) : '';689:     $registered_after = isset($_GET['registered_after']) ? pun_trim($_GET['registered_after']) : '';
690:     $registered_before = isset($_GET['registered_before']) ? trim($_GET['registered_before']) : '';690:     $registered_before = isset($_GET['registered_before']) ? pun_trim($_GET['registered_before']) : '';
691:     $order_by = isset($_GET['order_by']) && in_array($_GET['order_by'], array('username', 'email', 'num_posts', 'last_post', 'last_visit', 'registered')) ? $_GET['order_by'] : 'username';691:     $order_by = isset($_GET['order_by']) && in_array($_GET['order_by'], array('username', 'email', 'num_posts', 'last_post', 'last_visit', 'registered')) ? $_GET['order_by'] : 'username';
692:     $direction = isset($_GET['direction']) && $_GET['direction'] == 'DESC' ? 'DESC' : 'ASC';692:     $direction = isset($_GET['direction']) && $_GET['direction'] == 'DESC' ? 'DESC' : 'ASC';
693:     $user_group = isset($_GET['user_group']) ? intval($_GET['user_group']) : -1;693:     $user_group = isset($_GET['user_group']) ? intval($_GET['user_group']) : -1;


a/db_update.php b/db_update.php
  7:  */  7:  */
  8:   8: 
  9: // The FluxBB version this script updates to  9: // The FluxBB version this script updates to
 10: define('UPDATE_TO', '1.4.8'); 10: define('UPDATE_TO', '1.4.9');
 11:  11: 
 12: define('UPDATE_TO_DB_REVISION', 15); 12: define('UPDATE_TO_DB_REVISION', 15);
 13: define('UPDATE_TO_SI_REVISION', 2); 13: define('UPDATE_TO_SI_REVISION', 2);
254: //254: //
255: function convert_to_utf8(&$str, $old_charset)255: function convert_to_utf8(&$str, $old_charset)
256: {256: {
257:     if ($str === null || $str == '')257:     if (is_null($str) || $str == '')
258:         return false;258:         return false;
259: 259: 
260:     $save = $str;260:     $save = $str;
331:     $result = $db->query('SHOW FULL COLUMNS FROM '.$table) or error('Unable to fetch column information', __FILE__, __LINE__, $db->error());331:     $result = $db->query('SHOW FULL COLUMNS FROM '.$table) or error('Unable to fetch column information', __FILE__, __LINE__, $db->error());
332:     while ($cur_column = $db->fetch_assoc($result))332:     while ($cur_column = $db->fetch_assoc($result))
333:     {333:     {
334:         if ($cur_column['Collation'] === null)334:         if (is_null($cur_column['Collation']))
335:             continue;335:             continue;
336: 336: 
337:         list($type) = explode('(', $cur_column['Type']);337:         list($type) = explode('(', $cur_column['Type']);
359:     if ($mysql)359:     if ($mysql)
360:     {360:     {
361:         // Only set up the tables if we are doing this in 1 go, or its the first go361:         // Only set up the tables if we are doing this in 1 go, or its the first go
362:         if ($start_at === null || $start_at == 0)362:         if (is_null($start_at) || $start_at == 0)
363:         {363:         {
364:             // Drop any temp table that exists, in-case it's left over from a failed update364:             // Drop any temp table that exists, in-case it's left over from a failed update
365:             $db->drop_table($table.'_utf8', true) or error('Unable to drop left over temp table', __FILE__, __LINE__, $db->error());365:             $db->drop_table($table.'_utf8', true) or error('Unable to drop left over temp table', __FILE__, __LINE__, $db->error());
375:         $db->set_names($old_connection_charset);375:         $db->set_names($old_connection_charset);
376: 376: 
377:         // Move & Convert everything377:         // Move & Convert everything
378:         $result = $db->query('SELECT * FROM '.$table.($start_at === null ? '' : ' WHERE '.$key.'>'.$start_at).' ORDER BY '.$key.' ASC'.($start_at === null ? '' : ' LIMIT '.PER_PAGE), false) or error('Unable to select from old table', __FILE__, __LINE__, $db->error());378:         $result = $db->query('SELECT * FROM '.$table.(is_null($start_at) ? '' : ' WHERE '.$key.'>'.$start_at).' ORDER BY '.$key.' ASC'.(is_null($start_at) ? '' : ' LIMIT '.PER_PAGE), false) or error('Unable to select from old table', __FILE__, __LINE__, $db->error());
379: 379: 
380:         // Change back to utf8 mode so we can insert it into the new table380:         // Change back to utf8 mode so we can insert it into the new table
381:         $db->set_names('utf8');381:         $db->set_names('utf8');
386: 386: 
387:             $temp = array();387:             $temp = array();
388:             foreach ($cur_item as $idx => $value)388:             foreach ($cur_item as $idx => $value)
389:                 $temp[$idx] = $value === null ? 'NULL' : '\''.$db->escape($value).'\'';389:                 $temp[$idx] = is_null($value) ? 'NULL' : '\''.$db->escape($value).'\'';
390: 390: 
391:             $db->query('INSERT INTO '.$table.'_utf8('.implode(',', array_keys($temp)).') VALUES ('.implode(',', array_values($temp)).')') or ($error_callback === null ? error('Unable to insert data to new table', __FILE__, __LINE__, $db->error()) : call_user_func($error_callback, $cur_item));391:             $db->query('INSERT INTO '.$table.'_utf8('.implode(',', array_keys($temp)).') VALUES ('.implode(',', array_values($temp)).')') or (is_null($error_callback) ? error('Unable to insert data to new table', __FILE__, __LINE__, $db->error()) : call_user_func($error_callback, $cur_item));
392: 392: 
393:             $end_at = $cur_item[$key];393:             $end_at = $cur_item[$key];
394:         }394:         }
395: 395: 
396:         // If we aren't doing this all in 1 go and $end_at has a value (i.e. we have processed at least 1 row), figure out if we have more to do or not396:         // If we aren't doing this all in 1 go and $end_at has a value (i.e. we have processed at least 1 row), figure out if we have more to do or not
397:         if ($start_at !== null && $end_at > 0)397:         if (!is_null($start_at) && $end_at > 0)
398:         {398:         {
399:             $result = $db->query('SELECT 1 FROM '.$table.' WHERE '.$key.'>'.$end_at.' ORDER BY '.$key.' ASC LIMIT 1') or error('Unable to check for next row', __FILE__, __LINE__, $db->error());399:             $result = $db->query('SELECT 1 FROM '.$table.' WHERE '.$key.'>'.$end_at.' ORDER BY '.$key.' ASC LIMIT 1') or error('Unable to check for next row', __FILE__, __LINE__, $db->error());
400:             $finished = $db->num_rows($result) == 0;400:             $finished = $db->num_rows($result) == 0;
417:     else417:     else
418:     {418:     {
419:         // Convert everything419:         // Convert everything
420:         $result = $db->query('SELECT * FROM '.$table.($start_at === null ? '' : ' WHERE '.$key.'>'.$start_at).' ORDER BY '.$key.' ASC'.($start_at === null ? '' : ' LIMIT '.PER_PAGE)) or error('Unable to select from table', __FILE__, __LINE__, $db->error());420:         $result = $db->query('SELECT * FROM '.$table.(is_null($start_at) ? '' : ' WHERE '.$key.'>'.$start_at).' ORDER BY '.$key.' ASC'.(is_null($start_at ) ? '' : ' LIMIT '.PER_PAGE)) or error('Unable to select from table', __FILE__, __LINE__, $db->error());
421:         while ($cur_item = $db->fetch_assoc($result))421:         while ($cur_item = $db->fetch_assoc($result))
422:         {422:         {
423:             $cur_item = call_user_func($callback, $cur_item, $old_charset);423:             $cur_item = call_user_func($callback, $cur_item, $old_charset);
424: 424: 
425:             $temp = array();425:             $temp = array();
426:             foreach ($cur_item as $idx => $value)426:             foreach ($cur_item as $idx => $value)
427:                 $temp[] = $idx.'='.($value === null ? 'NULL' : '\''.$db->escape($value).'\'');427:                 $temp[] = $idx.'='.(is_null($value) ? 'NULL' : '\''.$db->escape($value).'\'');
428: 428: 
429:             if (!empty($temp))429:             if (!empty($temp))
430:                 $db->query('UPDATE '.$table.' SET '.implode(', ', $temp).' WHERE '.$key.'=\''.$db->escape($cur_item[$key]).'\'') or error('Unable to update data', __FILE__, __LINE__, $db->error());430:                 $db->query('UPDATE '.$table.' SET '.implode(', ', $temp).' WHERE '.$key.'=\''.$db->escape($cur_item[$key]).'\'') or error('Unable to update data', __FILE__, __LINE__, $db->error());
432:             $end_at = $cur_item[$key];432:             $end_at = $cur_item[$key];
433:         }433:         }
434: 434: 
435:         if ($start_at !== null && $end_at > 0)435:         if (!is_null($start_at) && $end_at > 0)
436:         {436:         {
437:             $result = $db->query('SELECT 1 FROM '.$table.' WHERE '.$key.'>'.$end_at.' ORDER BY '.$key.' ASC LIMIT 1') or error('Unable to check for next row', __FILE__, __LINE__, $db->error());437:             $result = $db->query('SELECT 1 FROM '.$table.' WHERE '.$key.'>'.$end_at.' ORDER BY '.$key.' ASC LIMIT 1') or error('Unable to check for next row', __FILE__, __LINE__, $db->error());
438:             if ($db->num_rows($result) == 0)438:             if ($db->num_rows($result) == 0)
621: // Generate or fetch the UID - this confirms we have a valid admin621: // Generate or fetch the UID - this confirms we have a valid admin
622: if (isset($_POST['req_db_pass']))622: if (isset($_POST['req_db_pass']))
623: {623: {
624:     $req_db_pass = strtolower(trim($_POST['req_db_pass']));624:     $req_db_pass = strtolower(pun_trim($_POST['req_db_pass']));
625: 625: 
626:     switch ($db_type)626:     switch ($db_type)
627:     {627:     {
674: }674: }
675: else if (isset($_GET['uid']))675: else if (isset($_GET['uid']))
676: {676: {
677:     $uid = trim($_GET['uid']);677:     $uid = pun_trim($_GET['uid']);
678:     if (!$lock || $lock != $uid) // The lock doesn't exist or doesn't match the given UID678:     if (!$lock || $lock != $uid) // The lock doesn't exist or doesn't match the given UID
679:         $lock_error = true;679:         $lock_error = true;
680: }680: }
1557: 1557: 
1558:                     $temp = array();1558:                     $temp = array();
1559:                     foreach ($cur_user as $idx => $value)1559:                     foreach ($cur_user as $idx => $value)
1560:                         $temp[$idx] = $value === null ? 'NULL' : '\''.$db->escape($value).'\'';1560:                         $temp[$idx] = is_null($value) ? 'NULL' : '\''.$db->escape($value).'\'';
1561: 1561: 
1562:                     // Insert the renamed user1562:                     // Insert the renamed user
1563:                     $db->query('INSERT INTO '.$db->prefix.'users('.implode(',', array_keys($temp)).') VALUES ('.implode(',', array_values($temp)).')') or error('Unable to insert data to new table', __FILE__, __LINE__, $db->error());1563:                     $db->query('INSERT INTO '.$db->prefix.'users('.implode(',', array_keys($temp)).') VALUES ('.implode(',', array_values($temp)).')') or error('Unable to insert data to new table', __FILE__, __LINE__, $db->error());


a/delete.php b/delete.php
 11:  11: 
 12:  12: 
 13: if ($pun_user['g_read_board'] == '0') 13: if ($pun_user['g_read_board'] == '0')
 14:     message($lang_common['No view']); 14:     message($lang_common['No view'], false, '403 Forbidden');
 15:  15: 
 16:  16: 
 17: $id = isset($_GET['id']) ? intval($_GET['id']) : 0; 17: $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
 18: if ($id < 1) 18: if ($id < 1)
 19:     message($lang_common['Bad request']); 19:     message($lang_common['Bad request'], false, '404 Not Found');
 20:  20: 
 21: // Fetch some info about the post, the topic and the forum 21: // Fetch some info about the post, the topic and the forum
 22: $result = $db->query('SELECT f.id AS fid, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, t.id AS tid, t.subject, t.first_post_id, t.closed, p.posted, p.poster, p.poster_id, p.message, p.hide_smilies FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND p.id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); 22: $result = $db->query('SELECT f.id AS fid, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, t.id AS tid, t.subject, t.first_post_id, t.closed, p.posted, p.poster, p.poster_id, p.message, p.hide_smilies FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND p.id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
 23: if (!$db->num_rows($result)) 23: if (!$db->num_rows($result))
 24:     message($lang_common['Bad request']); 24:     message($lang_common['Bad request'], false, '404 Not Found');
 25:  25: 
 26: $cur_post = $db->fetch_assoc($result); 26: $cur_post = $db->fetch_assoc($result);
 27:  27: 
 40:     $cur_post['poster_id'] != $pun_user['id'] || 40:     $cur_post['poster_id'] != $pun_user['id'] ||
 41:     $cur_post['closed'] == '1') && 41:     $cur_post['closed'] == '1') &&
 42:     !$is_admmod) 42:     !$is_admmod)
 43:     message($lang_common['No permission']); 43:     message($lang_common['No permission'], false, '403 Forbidden');
 44:  44: 
 45: // Load the delete.php language file 45: // Load the delete.php language file
 46: require PUN_ROOT.'lang/'.$pun_user['language'].'/delete.php'; 46: require PUN_ROOT.'lang/'.$pun_user['language'].'/delete.php';


a/edit.php b/edit.php
 11:  11: 
 12:  12: 
 13: if ($pun_user['g_read_board'] == '0') 13: if ($pun_user['g_read_board'] == '0')
 14:     message($lang_common['No view']); 14:     message($lang_common['No view'], false, '403 Forbidden');
 15:  15: 
 16:  16: 
 17: $id = isset($_GET['id']) ? intval($_GET['id']) : 0; 17: $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
 18: if ($id < 1) 18: if ($id < 1)
 19:     message($lang_common['Bad request']); 19:     message($lang_common['Bad request'], false, '404 Not Found');
 20:  20: 
 21: // Fetch some info about the post, the topic and the forum 21: // Fetch some info about the post, the topic and the forum
 22: $result = $db->query('SELECT f.id AS fid, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, t.id AS tid, t.subject, t.posted, t.first_post_id, t.sticky, t.closed, p.poster, p.poster_id, p.message, p.hide_smilies FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND p.id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); 22: $result = $db->query('SELECT f.id AS fid, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, t.id AS tid, t.subject, t.posted, t.first_post_id, t.sticky, t.closed, p.poster, p.poster_id, p.message, p.hide_smilies FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND p.id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
 23: if (!$db->num_rows($result)) 23: if (!$db->num_rows($result))
 24:     message($lang_common['Bad request']); 24:     message($lang_common['Bad request'], false, '404 Not Found');
 25:  25: 
 26: $cur_post = $db->fetch_assoc($result); 26: $cur_post = $db->fetch_assoc($result);
 27:  27: 
 42:     $cur_post['poster_id'] != $pun_user['id'] || 42:     $cur_post['poster_id'] != $pun_user['id'] ||
 43:     $cur_post['closed'] == '1') && 43:     $cur_post['closed'] == '1') &&
 44:     !$is_admmod) 44:     !$is_admmod)
 45:     message($lang_common['No permission']); 45:     message($lang_common['No permission'], false, '403 Forbidden');
 46:  46: 
 47: // Load the post.php/edit.php language file 47: // Load the post.php/edit.php language file
 48: require PUN_ROOT.'lang/'.$pun_user['language'].'/post.php'; 48: require PUN_ROOT.'lang/'.$pun_user['language'].'/post.php';


a/help.php b/help.php
 14:  14: 
 15:  15: 
 16: if ($pun_user['g_read_board'] == '0') 16: if ($pun_user['g_read_board'] == '0')
 17:     message($lang_common['No view']); 17:     message($lang_common['No view'], false, '403 Forbidden');
 18:  18: 
 19:  19: 
 20: // Load the help.php language file 20: // Load the help.php language file


a/include/common.php b/include/common.php
 10:     exit('The constant PUN_ROOT must be defined and point to a valid FluxBB installation root directory.'); 10:     exit('The constant PUN_ROOT must be defined and point to a valid FluxBB installation root directory.');
 11:  11: 
 12: // Define the version and database revision that this code was written for 12: // Define the version and database revision that this code was written for
 13: define('FORUM_VERSION', '1.4.8'); 13: define('FORUM_VERSION', '1.4.9');
 14:  14: 
 15: define('FORUM_DB_REVISION', 15); 15: define('FORUM_DB_REVISION', 15);
 16: define('FORUM_SI_REVISION', 2); 16: define('FORUM_SI_REVISION', 2);


a/include/dblayer/mysql.php b/include/dblayer/mysql.php
318: 318: 
319:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);319:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);
320: 320: 
321:         if ($default_value !== null && !is_int($default_value) && !is_float($default_value))321:         if (!is_null($default_value) && !is_int($default_value) && !is_float($default_value))
322:             $default_value = '\''.$this->escape($default_value).'\'';322:             $default_value = '\''.$this->escape($default_value).'\'';
323: 323: 
324:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' ADD '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').($default_value !== null ? ' DEFAULT '.$default_value : ' ').($after_field != null ? ' AFTER '.$after_field : '')) ? true : false;324:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' ADD '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').(!is_null($default_value) ? ' DEFAULT '.$default_value : ' ').(!is_null($after_field) ? ' AFTER '.$after_field : '')) ? true : false;
325:     }325:     }
326: 326: 
327: 327: 
332: 332: 
333:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);333:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);
334: 334: 
335:         if ($default_value !== null && !is_int($default_value) && !is_float($default_value))335:         if (!is_null($default_value) && !is_int($default_value) && !is_float($default_value))
336:             $default_value = '\''.$this->escape($default_value).'\'';336:             $default_value = '\''.$this->escape($default_value).'\'';
337: 337: 
338:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' MODIFY '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').($default_value !== null ? ' DEFAULT '.$default_value : ' ').($after_field != null ? ' AFTER '.$after_field : '')) ? true : false;338:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' MODIFY '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').(!is_null($default_value) ? ' DEFAULT '.$default_value : ' ').(!is_null($after_field) ? ' AFTER '.$after_field : '')) ? true : false;
339:     }339:     }
340: 340: 
341: 341: 


a/include/dblayer/mysql_innodb.php b/include/dblayer/mysql_innodb.php
332: 332: 
333:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);333:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);
334: 334: 
335:         if ($default_value !== null && !is_int($default_value) && !is_float($default_value))335:         if (!is_null($default_value) && !is_int($default_value) && !is_float($default_value))
336:             $default_value = '\''.$this->escape($default_value).'\'';336:             $default_value = '\''.$this->escape($default_value).'\'';
337: 337: 
338:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' ADD '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').($default_value !== null ? ' DEFAULT '.$default_value : ' ').($after_field != null ? ' AFTER '.$after_field : '')) ? true : false;338:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' ADD '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').(!is_null($default_value) ? ' DEFAULT '.$default_value : ' ').(!is_null($after_field) ? ' AFTER '.$after_field : '')) ? true : false;
339:     }339:     }
340: 340: 
341: 341: 
346: 346: 
347:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);347:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);
348: 348: 
349:         if ($default_value !== null && !is_int($default_value) && !is_float($default_value))349:         if (!is_null($default_value) && !is_int($default_value) && !is_float($default_value))
350:             $default_value = '\''.$this->escape($default_value).'\'';350:             $default_value = '\''.$this->escape($default_value).'\'';
351: 351: 
352:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' MODIFY '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').($default_value !== null ? ' DEFAULT '.$default_value : ' ').($after_field != null ? ' AFTER '.$after_field : '')) ? true : false;352:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' MODIFY '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').(!is_null($default_value) ? ' DEFAULT '.$default_value : ' ').(!is_null($after_field) ? ' AFTER '.$after_field : '')) ? true : false;
353:     }353:     }
354: 354: 
355: 355: 


a/include/dblayer/mysqli.php b/include/dblayer/mysqli.php
325: 325: 
326:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);326:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);
327: 327: 
328:         if ($default_value !== null && !is_int($default_value) && !is_float($default_value))328:         if (!is_null($default_value) && !is_int($default_value) && !is_float($default_value))
329:             $default_value = '\''.$this->escape($default_value).'\'';329:             $default_value = '\''.$this->escape($default_value).'\'';
330: 330: 
331:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' ADD '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').($default_value !== null ? ' DEFAULT '.$default_value : ' ').($after_field != null ? ' AFTER '.$after_field : '')) ? true : false;331:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' ADD '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').(!is_null($default_value) ? ' DEFAULT '.$default_value : ' ').(!is_null($after_field) ? ' AFTER '.$after_field : '')) ? true : false;
332:     }332:     }
333: 333: 
334: 334: 
339: 339: 
340:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);340:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);
341: 341: 
342:         if ($default_value !== null && !is_int($default_value) && !is_float($default_value))342:         if (!is_null($default_value) && !is_int($default_value) && !is_float($default_value))
343:             $default_value = '\''.$this->escape($default_value).'\'';343:             $default_value = '\''.$this->escape($default_value).'\'';
344: 344: 
345:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' MODIFY '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').($default_value !== null ? ' DEFAULT '.$default_value : ' ').($after_field != null ? ' AFTER '.$after_field : '')) ? true : false;345:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' MODIFY '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').(!is_null($default_value) ? ' DEFAULT '.$default_value : ' ').(!is_null($after_field) ? ' AFTER '.$after_field : '')) ? true : false;
346:     }346:     }
347: 347: 
348: 348: 


a/include/dblayer/mysqli_innodb.php b/include/dblayer/mysqli_innodb.php
338: 338: 
339:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);339:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);
340: 340: 
341:         if ($default_value !== null && !is_int($default_value) && !is_float($default_value))341:         if (!is_null($default_value) && !is_int($default_value) && !is_float($default_value))
342:             $default_value = '\''.$this->escape($default_value).'\'';342:             $default_value = '\''.$this->escape($default_value).'\'';
343: 343: 
344:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' ADD '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').($default_value !== null ? ' DEFAULT '.$default_value : ' ').($after_field != null ? ' AFTER '.$after_field : '')) ? true : false;344:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' ADD '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').(!is_null($default_value) ? ' DEFAULT '.$default_value : ' ').(!is_null($after_field) ? ' AFTER '.$after_field : '')) ? true : false;
345:     }345:     }
346: 346: 
347: 347: 
352: 352: 
353:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);353:         $field_type = preg_replace(array_keys($this->datatype_transformations), array_values($this->datatype_transformations), $field_type);
354: 354: 
355:         if ($default_value !== null && !is_int($default_value) && !is_float($default_value))355:         if (!is_null($default_value) && !is_int($default_value) && !is_float($default_value))
356:             $default_value = '\''.$this->escape($default_value).'\'';356:             $default_value = '\''.$this->escape($default_value).'\'';
357: 357: 
358:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' MODIFY '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').($default_value !== null ? ' DEFAULT '.$default_value : ' ').($after_field != null ? ' AFTER '.$after_field : '')) ? true : false;358:         return $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' MODIFY '.$field_name.' '.$field_type.($allow_null ? ' ' : ' NOT NULL').(!is_null($default_value) ? ' DEFAULT '.$default_value : ' ').(!is_null($after_field) ? ' AFTER '.$after_field : '')) ? true : false;
359:     }359:     }
360: 360: 
361: 361: 


a/include/dblayer/pgsql.php b/include/dblayer/pgsql.php
371: 371: 
372:         $result = $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' ADD '.$field_name.' '.$field_type) ? true : false;372:         $result = $this->query('ALTER TABLE '.($no_prefix ? '' : $this->prefix).$table_name.' ADD '.$field_name.' '.$field_type) ? true : false;
373: 373: 
374:         if ($default_value !== null)374:         if (!is_null($default_value))
375:         {375:         {
376:             if (!is_int($default_value) && !is_float($default_value))376:             if (!is_int($default_value) && !is_float($default_value))
377:                 $default_value = '\''.$this->escape($default_value).'\'';377:                 $default_value = '\''.$this->escape($default_value).'\'';


a/include/dblayer/sqlite.php b/include/dblayer/sqlite.php
438:         $query = $field_type;438:         $query = $field_type;
439:         if (!$allow_null)439:         if (!$allow_null)
440:             $query .= ' NOT NULL';440:             $query .= ' NOT NULL';
441:         if ($default_value === null || $default_value === '')441:         if (is_null($default_value) || $default_value === '')
442:             $default_value = '\'\'';442:             $default_value = '\'\'';
443: 443: 
444:         $query .= ' DEFAULT '.$default_value;444:         $query .= ' DEFAULT '.$default_value;


a/include/functions.php b/include/functions.php
566: 566: 
567:     $page_title = array_reverse($page_title);567:     $page_title = array_reverse($page_title);
568: 568: 
569:     if ($p != null)569:     if (!is_null($p))
570:         $page_title[0] .= ' ('.sprintf($lang_common['Page'], forum_number_format($p)).')';570:         $page_title[0] .= ' ('.sprintf($lang_common['Page'], forum_number_format($p)).')';
571: 571: 
572:     $crumbs = implode($lang_common['Title separator'], $page_title);572:     $crumbs = implode($lang_common['Title separator'], $page_title);
619:     if (!$cookie_data)619:     if (!$cookie_data)
620:         return array('topics' => array(), 'forums' => array());620:         return array('topics' => array(), 'forums' => array());
621: 621: 
622:     if (strlen($cookie_data) > 4048)622:     if (strlen($cookie_data) > FORUM_MAX_COOKIE_SIZE)
623:         return array('topics' => array(), 'forums' => array());623:         return array('topics' => array(), 'forums' => array());
624: 624: 
625:     // Unserialize data from cookie625:     // Unserialize data from cookie
882:     {882:     {
883:         // Add a previous page link883:         // Add a previous page link
884:         if ($num_pages > 1 && $cur_page > 1)884:         if ($num_pages > 1 && $cur_page > 1)
885:             $pages[] = '<a'.(empty($pages) ? ' class="item1"' : '').' href="'.$link.'&amp;p='.($cur_page - 1).'">'.$lang_common['Previous'].'</a>';885:             $pages[] = '<a rel="prev" '.(empty($pages) ? ' class="item1"' : '').' href="'.$link.'&amp;p='.($cur_page - 1).'">'.$lang_common['Previous'].'</a>';
886: 886: 
887:         if ($cur_page > 3)887:         if ($cur_page > 3)
888:         {888:         {
913: 913: 
914:         // Add a next page link914:         // Add a next page link
915:         if ($num_pages > 1 && !$link_to_all && $cur_page < $num_pages)915:         if ($num_pages > 1 && !$link_to_all && $cur_page < $num_pages)
916:             $pages[] = '<a'.(empty($pages) ? ' class="item1"' : '').' href="'.$link.'&amp;p='.($cur_page +1).'">'.$lang_common['Next'].'</a>';916:             $pages[] = '<a rel="next" '.(empty($pages) ? ' class="item1"' : '').' href="'.$link.'&amp;p='.($cur_page +1).'">'.$lang_common['Next'].'</a>';
917:     }917:     }
918: 918: 
919:     return implode(' ', $pages);919:     return implode(' ', $pages);
923: //923: //
924: // Display a message924: // Display a message
925: //925: //
926: function message($message, $no_back_link = false)926: function message($message, $no_back_link = false, $http_status = null)
927: {927: {
928:     global $db, $lang_common, $pun_config, $pun_start, $tpl_main, $pun_user;928:     global $db, $lang_common, $pun_config, $pun_start, $tpl_main, $pun_user;
929: 929: 
 930:     // Did we receive a custom header?
 931:     if(!is_null($http_status)) {
 932:         header('HTTP/1.1 ' . $http_status);
 933:     }
 934: 
930:     if (!defined('PUN_HEADER'))935:     if (!defined('PUN_HEADER'))
931:     {936:     {
932:         $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_common['Info']);937:         $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_common['Info']);
965:     $timestamp += $diff;970:     $timestamp += $diff;
966:     $now = time();971:     $now = time();
967: 972: 
968:     if($date_format == null)973:     if(is_null($date_format))
969:         $date_format = $forum_date_formats[$pun_user['date_format']];974:         $date_format = $forum_date_formats[$pun_user['date_format']];
970: 975: 
971:     if($time_format == null)976:     if(is_null($time_format))
972:         $time_format = $forum_time_formats[$pun_user['time_format']];977:         $time_format = $forum_time_formats[$pun_user['time_format']];
973: 978: 
974:     $date = gmdate($date_format, $timestamp);979:     $date = gmdate($date_format, $timestamp);
1155: //1160: //
1156: function pun_trim($str, $charlist = false)1161: function pun_trim($str, $charlist = false)
1157: {1162: {
1158:     return utf8_trim($str, $charlist);1163:     return is_string($str) ? utf8_trim($str, $charlist) : '';
1159: }1164: }
1160: 1165: 
1161: //1166: //
1175: //1180: //
1176: function array_insert(&$input, $offset, $element, $key = null)1181: function array_insert(&$input, $offset, $element, $key = null)
1177: {1182: {
1178:     if ($key == null)1183:     if (is_null($key))
1179:         $key = $offset;1184:         $key = $offset;
1180: 1185: 
1181:     // Determine the proper offset if we're using a string1186:     // Determine the proper offset if we're using a string
1501:     <div>1506:     <div>
1502: <?php1507: <?php
1503: 1508: 
1504:     if (defined('PUN_DEBUG') && $file !== null && $line !== null)1509:     if (defined('PUN_DEBUG') && !is_null($file) && !is_null($line))
1505:     {1510:     {
1506:         echo "\t\t".'<strong>File:</strong> '.$file.'<br />'."\n\t\t".'<strong>Line:</strong> '.$line.'<br /><br />'."\n\t\t".'<strong>FluxBB reported</strong>: '.$message."\n";1511:         echo "\t\t".'<strong>File:</strong> '.$file.'<br />'."\n\t\t".'<strong>Line:</strong> '.$line.'<br /><br />'."\n\t\t".'<strong>FluxBB reported</strong>: '.$message."\n";
1507: 1512: 
1651:     for ($i = 0; $size > 1024; $i++)1656:     for ($i = 0; $size > 1024; $i++)
1652:         $size /= 1024;1657:         $size /= 1024;
1653: 1658: 
1654:     return sprintf($lang_common['Size unit '.$units[$i]], round($size, 2));;1659:     return sprintf($lang_common['Size unit '.$units[$i]], round($size, 2));
1655: }1660: }
1656: 1661: 
1657: 1662: 
1977: //1982: //
1978: // As MySQL cannot properly handle four-byte characters with the default utf-81983: // As MySQL cannot properly handle four-byte characters with the default utf-8
1979: // charset up until version 5.5.3 (where a special charset has to be used), they1984: // charset up until version 5.5.3 (where a special charset has to be used), they
1980: // need to be replaced, by question marks in this case. 1985: // need to be replaced, by question marks in this case.
1981: //1986: //
1982: function strip_bad_multibyte_chars($str)1987: function strip_bad_multibyte_chars($str)
1983: {1988: {
1984:     $result = '';1989:     $result = '';
1985:     $length = strlen($str);1990:     $length = strlen($str);
1986:     1991: 
1987:     for ($i = 0; $i < $length; $i++)1992:     for ($i = 0; $i < $length; $i++)
1988:     {1993:     {
1989:         // Replace four-byte characters (11110www 10zzzzzz 10yyyyyy 10xxxxxx)1994:         // Replace four-byte characters (11110www 10zzzzzz 10yyyyyy 10xxxxxx)
1998:             $result .= $str[$i];2003:             $result .= $str[$i];
1999:         }2004:         }
2000:     }2005:     }
2001:     2006: 
2002:     return $result;2007:     return $result;
2003: }2008: }
2004: 2009: 


a/include/parser.php b/include/parser.php
 82:     $temp = preg_replace($re_list, 'preparse_list_tag(\'$2\', \'$1\')', $text); 82:     $temp = preg_replace($re_list, 'preparse_list_tag(\'$2\', \'$1\')', $text);
 83:  83: 
 84:     // If the regex failed 84:     // If the regex failed
 85:     if ($temp === null) 85:     if (is_null($temp))
 86:         $errors[] = $lang_common['BBCode list size error']; 86:         $errors[] = $lang_common['BBCode list size error'];
 87:     else 87:     else
 88:         $text = str_replace('*'."\0".']', '*]', $temp); 88:         $text = str_replace('*'."\0".']', '*]', $temp);
144:         list($inside, $text) = extract_blocks($text, '[code]', '[/code]');144:         list($inside, $text) = extract_blocks($text, '[code]', '[/code]');
145: 145: 
146:     // Remove empty tags146:     // Remove empty tags
147:     while (($new_text = preg_replace('%\[(b|u|s|ins|del|em|i|h|colou?r|quote|img|url|email|list|topic|post|forum|user)(?:\=[^\]]*)?\]\s*\[/\1\]%', '', $text)) !== NULL)147:     while (!is_null($new_text = preg_replace('%\[(b|u|s|ins|del|em|i|h|colou?r|quote|img|url|email|list|topic|post|forum|user)(?:\=[^\]]*)?\]\s*\[/\1\]%', '', $text)))
148:     {148:     {
149:         if ($new_text != $text)149:         if ($new_text != $text)
150:             $text = $new_text;150:             $text = $new_text;
166:     }166:     }
167: 167: 
168:     // Remove empty code tags168:     // Remove empty code tags
169:     while (($new_text = preg_replace('%\[(code)\]\s*\[/\1\]%', '', $text)) !== NULL)169:     while (!is_null($new_text = preg_replace('%\[(code)\]\s*\[/\1\]%', '', $text)))
170:     {170:     {
171:         if ($new_text != $text)171:         if ($new_text != $text)
172:             $text = $new_text;172:             $text = $new_text;
675: {675: {
676:     global $lang_common, $pun_user;676:     global $lang_common, $pun_user;
677: 677: 
678:     if ($alt == null)678:     if (is_null($alt))
679:         $alt = basename($url);679:         $alt = basename($url);
680: 680: 
681:     $img_tag = '<a href="'.$url.'">&lt;'.$lang_common['Image link'].' - '.$alt.'&gt;</a>';681:     $img_tag = '<a href="'.$url.'">&lt;'.$lang_common['Image link'].' - '.$alt.'&gt;</a>';


a/include/search_idx.php b/include/search_idx.php
 47: // 47: //
 48: function split_words($text, $idx) 48: function split_words($text, $idx)
 49: { 49: {
  50:     // Remove BBCode
  51:     $text = preg_replace('%\[/?(b|u|s|ins|del|em|i|h|colou?r|quote|code|img|url|email|list|topic|post|forum|user)(?:\=[^\]]*)?\]%', ' ', $text);
  52: 
 50:     // Remove any apostrophes or dashes which aren't part of words 53:     // Remove any apostrophes or dashes which aren't part of words
 51:     $text = substr(ucp_preg_replace('%((?<=[^\p{L}\p{N}])[\'\-]|[\'\-](?=[^\p{L}\p{N}]))%u', '', ' '.$text.' '), 1, -1); 54:     $text = substr(ucp_preg_replace('%((?<=[^\p{L}\p{N}])[\'\-]|[\'\-](?=[^\p{L}\p{N}]))%u', '', ' '.$text.' '), 1, -1);
 52:  55: 
144:         $patterns = array(147:         $patterns = array(
145:             '%\[img=([^\]]*+)\]([^[]*+)\[/img\]%'                                    =>    '$2 $1',    // Keep the url and description148:             '%\[img=([^\]]*+)\]([^[]*+)\[/img\]%'                                    =>    '$2 $1',    // Keep the url and description
146:             '%\[(url|email)=([^\]]*+)\]([^[]*+(?:(?!\[/\1\])\[[^[]*+)*)\[/\1\]%'    =>    '$2 $3',    // Keep the url and text149:             '%\[(url|email)=([^\]]*+)\]([^[]*+(?:(?!\[/\1\])\[[^[]*+)*)\[/\1\]%'    =>    '$2 $3',    // Keep the url and text
 150:             '%\[(img|url|email)\]([^[]*+(?:(?!\[/\1\])\[[^[]*+)*)\[/\1\]%'            =>    '$2',        // Keep the url
147:             '%\[(topic|post|forum|user)\][1-9]\d*\[/\1\]%'                            =>    ' ',        // Do not index topic/post/forum/user ID151:             '%\[(topic|post|forum|user)\][1-9]\d*\[/\1\]%'                            =>    ' ',        // Do not index topic/post/forum/user ID
148:             '%\[/?(b|u|s|ins|del|em|i|h|colou?r|quote|code|img|url|email|list|topic|post|forum|user)(?:\=[^\]]*)?\]%'    => ' ' // Remove BBCode 
149:         );152:         );
150:     }153:     }
151: 154: 


a/include/utf8/strcspn.php b/include/utf8/strcspn.php
 24:  24: 
 25:     $mask = preg_replace('!([\\\\\\-\\]\\[/^])!','\\\${1}', $mask); 25:     $mask = preg_replace('!([\\\\\\-\\]\\[/^])!','\\\${1}', $mask);
 26:  26: 
 27:     if ($start !== null || $length !== null) 27:     if (!is_null($start) || !is_null($length))
 28:         $str = utf8_substr($str, $start, $length); 28:         $str = utf8_substr($str, $start, $length);
 29:  29: 
 30:     preg_match('/^[^'.$mask.']+/u', $str, $matches); 30:     preg_match('/^[^'.$mask.']+/u', $str, $matches);


a/include/utf8/strspn.php b/include/utf8/strspn.php
 20: { 20: {
 21:     $mask = preg_replace('!([\\\\\\-\\]\\[/^])!', '\\\${1}', $mask); 21:     $mask = preg_replace('!([\\\\\\-\\]\\[/^])!', '\\\${1}', $mask);
 22:  22: 
 23:     if ($start !== null || $length !== null) 23:     if (!is_null($start)|| !is_null($length))
 24:         $str = utf8_substr($str, $start, $length); 24:         $str = utf8_substr($str, $start, $length);
 25:  25: 
 26:     preg_match('/^['.$mask.']+/u', $str, $matches); 26:     preg_match('/^['.$mask.']+/u', $str, $matches);


a/include/utf8/substr_replace.php b/include/utf8/substr_replace.php
 18:     preg_match_all('/./us', $str, $ar); 18:     preg_match_all('/./us', $str, $ar);
 19:     preg_match_all('/./us', $repl, $rar); 19:     preg_match_all('/./us', $repl, $rar);
 20:  20: 
 21:     if($length === null) 21:     if(is_null($length))
 22:         $length = utf8_strlen($str); 22:         $length = utf8_strlen($str);
 23:  23: 
 24:     array_splice($ar[0], $start, $length, $rar[0]); 24:     array_splice($ar[0], $start, $length, $rar[0]);


a/index.php b/index.php
 11:  11: 
 12:  12: 
 13: if ($pun_user['g_read_board'] == '0') 13: if ($pun_user['g_read_board'] == '0')
 14:     message($lang_common['No view']); 14:     message($lang_common['No view'], false, '403 Forbidden');
 15:  15: 
 16:  16: 
 17: // Load the index.php language file 17: // Load the index.php language file


a/install.php b/install.php
  7:  */  7:  */
  8:   8: 
  9: // The FluxBB version this script installs  9: // The FluxBB version this script installs
 10: define('FORUM_VERSION', '1.4.8'); 10: define('FORUM_VERSION', '1.4.9');
 11:  11: 
 12: define('FORUM_DB_REVISION', 15); 12: define('FORUM_DB_REVISION', 15);
 13: define('FORUM_SI_REVISION', 2); 13: define('FORUM_SI_REVISION', 2);
 63:  63: 
 64:  64: 
 65: // If we've been passed a default language, use it 65: // If we've been passed a default language, use it
 66: $install_lang = isset($_REQUEST['install_lang']) ? trim($_REQUEST['install_lang']) : 'English'; 66: $install_lang = isset($_REQUEST['install_lang']) ? pun_trim($_REQUEST['install_lang']) : 'English';
 67:  67: 
 68: // If such a language pack doesn't exist, or isn't up-to-date enough to translate this page, default to English 68: // If such a language pack doesn't exist, or isn't up-to-date enough to translate this page, default to English
 69: if (!file_exists(PUN_ROOT.'lang/'.$install_lang.'/install.php')) 69: if (!file_exists(PUN_ROOT.'lang/'.$install_lang.'/install.php'))
334: <?php endif; ?>334: <?php endif; ?>
335: 335: 
336: <div class="blockform">336: <div class="blockform">
337:     <h2><span><?php echo $lang_install['Install'] ?></span></h2>337:     <h2><span><?php echo sprintf($lang_install['Install'], FORUM_VERSION) ?></span></h2>
338:     <div class="box">338:     <div class="box">
339:         <form id="install" method="post" action="install.php" onsubmit="this.start.disabled=true;if(process_form(this)){return true;}else{this.start.disabled=false;return false;}">339:         <form id="install" method="post" action="install.php" onsubmit="this.start.disabled=true;if(process_form(this)){return true;}else{this.start.disabled=false;return false;}">
340:         <div><input type="hidden" name="form_sent" value="1" /><input type="hidden" name="install_lang" value="<?php echo pun_htmlspecialchars($install_lang) ?>" /></div>340:         <div><input type="hidden" name="form_sent" value="1" /><input type="hidden" name="install_lang" value="<?php echo pun_htmlspecialchars($install_lang) ?>" /></div>
1663: 1663: 
1664:     foreach ($pun_config as $conf_name => $conf_value)1664:     foreach ($pun_config as $conf_name => $conf_value)
1665:     {1665:     {
1666:         $db->query('INSERT INTO '.$db_prefix.'config (conf_name, conf_value) VALUES(\''.$conf_name.'\', '.($conf_value === NULL ? 'NULL' : '\''.$db->escape($conf_value).'\'').')')1666:         $db->query('INSERT INTO '.$db_prefix.'config (conf_name, conf_value) VALUES(\''.$conf_name.'\', '.(is_null($conf_value) ? 'NULL' : '\''.$db->escape($conf_value).'\'').')')
1667:             or error('Unable to insert into table '.$db_prefix.'config. Please check your configuration and try again', __FILE__, __LINE__, $db->error());1667:             or error('Unable to insert into table '.$db_prefix.'config. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
1668:     }1668:     }
1669: 1669: 


a/lang/English/install.php b/lang/English/install.php
 36: 'Required field'                =>    'is a required field in this form.', 36: 'Required field'                =>    'is a required field in this form.',
 37: 'FluxBB Installation'            =>    'FluxBB Installation', 37: 'FluxBB Installation'            =>    'FluxBB Installation',
 38: 'Welcome'                        =>    'You are about to install FluxBB. In order to install FluxBB, you must complete the form set out below. If you encounter any difficulties with the installation, please refer to the documentation.', 38: 'Welcome'                        =>    'You are about to install FluxBB. In order to install FluxBB, you must complete the form set out below. If you encounter any difficulties with the installation, please refer to the documentation.',
 39: 'Install'                        =>    'Install FluxBB 1.4', 39: 'Install'                        =>    'Install FluxBB %s',
 40: 'Errors'                        =>    'The following errors need to be corrected:', 40: 'Errors'                        =>    'The following errors need to be corrected:',
 41: 'Database setup'                =>    'Database setup', 41: 'Database setup'                =>    'Database setup',
 42: 'Info 1'                        =>    'Please enter the requested information in order to setup your database for FluxBB. You must know all the information asked for before proceeding with the installation.', 42: 'Info 1'                        =>    'Please enter the requested information in order to setup your database for FluxBB. You must know all the information asked for before proceeding with the installation.',


a/login.php b/login.php
122:         require PUN_ROOT.'include/email.php';122:         require PUN_ROOT.'include/email.php';
123: 123: 
124:         // Validate the email address124:         // Validate the email address
125:         $email = strtolower(trim($_POST['req_email']));125:         $email = strtolower(pun_trim($_POST['req_email']));
126:         if (!is_valid_email($email))126:         if (!is_valid_email($email))
127:             $errors[] = $lang_common['Invalid email'];127:             $errors[] = $lang_common['Invalid email'];
128: 128: 


a/misc.php b/misc.php
 49: else if ($action == 'markread') 49: else if ($action == 'markread')
 50: { 50: {
 51:     if ($pun_user['is_guest']) 51:     if ($pun_user['is_guest'])
 52:         message($lang_common['No permission']); 52:         message($lang_common['No permission'], false, '403 Forbidden');
 53:  53: 
 54:     $db->query('UPDATE '.$db->prefix.'users SET last_visit='.$pun_user['logged'].' WHERE id='.$pun_user['id']) or error('Unable to update user last visit data', __FILE__, __LINE__, $db->error()); 54:     $db->query('UPDATE '.$db->prefix.'users SET last_visit='.$pun_user['logged'].' WHERE id='.$pun_user['id']) or error('Unable to update user last visit data', __FILE__, __LINE__, $db->error());
 55:  55: 
 64: else if ($action == 'markforumread') 64: else if ($action == 'markforumread')
 65: { 65: {
 66:     if ($pun_user['is_guest']) 66:     if ($pun_user['is_guest'])
 67:         message($lang_common['No permission']); 67:         message($lang_common['No permission'], false, '403 Forbidden');
 68:  68: 
 69:     $fid = isset($_GET['fid']) ? intval($_GET['fid']) : 0; 69:     $fid = isset($_GET['fid']) ? intval($_GET['fid']) : 0;
 70:     if ($fid < 1) 70:     if ($fid < 1)
 81: else if (isset($_GET['email'])) 81: else if (isset($_GET['email']))
 82: { 82: {
 83:     if ($pun_user['is_guest'] || $pun_user['g_send_email'] == '0') 83:     if ($pun_user['is_guest'] || $pun_user['g_send_email'] == '0')
 84:         message($lang_common['No permission']); 84:         message($lang_common['No permission'], false, '403 Forbidden');
 85:  85: 
 86:     $recipient_id = intval($_GET['email']); 86:     $recipient_id = intval($_GET['email']);
 87:     if ($recipient_id < 2) 87:     if ($recipient_id < 2)
145:         if (strpos($referrer['host'], 'www.') === 0)145:         if (strpos($referrer['host'], 'www.') === 0)
146:             $referrer['host'] = substr($referrer['host'], 4);146:             $referrer['host'] = substr($referrer['host'], 4);
147: 147: 
 148:         // Make sure the path component exists
 149:         if (!isset($referrer['path']))
 150:             $referrer['path'] = '';
 151: 
148:         $valid = parse_url(get_base_url());152:         $valid = parse_url(get_base_url());
149:         // Remove www subdomain if it exists153:         // Remove www subdomain if it exists
150:         if (strpos($valid['host'], 'www.') === 0)154:         if (strpos($valid['host'], 'www.') === 0)
151:             $valid['host'] = substr($valid['host'], 4);155:             $valid['host'] = substr($valid['host'], 4);
152: 156: 
 157:         // Make sure the path component exists
 158:         if (!isset($valid['path']))
 159:             $valid['path'] = '';
 160: 
153:         if ($referrer['host'] == $valid['host'] && preg_match('%^'.preg_quote($valid['path'], '%').'/(.*?)\.php%i', $referrer['path']))161:         if ($referrer['host'] == $valid['host'] && preg_match('%^'.preg_quote($valid['path'], '%').'/(.*?)\.php%i', $referrer['path']))
154:             $redirect_url = $_SERVER['HTTP_REFERER'];162:             $redirect_url = $_SERVER['HTTP_REFERER'];
155:     }163:     }


a/moderate.php b/moderate.php
 15: if (isset($_GET['get_host'])) 15: if (isset($_GET['get_host']))
 16: { 16: {
 17:     if (!$pun_user['is_admmod']) 17:     if (!$pun_user['is_admmod'])
 18:         message($lang_common['No permission']); 18:         message($lang_common['No permission'], false, '403 Forbidden');
 19:  19: 
 20:     // Is get_host an IP address or a post ID? 20:     // Is get_host an IP address or a post ID?
 21:     if (@preg_match('%^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$%', $_GET['get_host']) || @preg_match('%^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$%', $_GET['get_host'])) 21:     if (@preg_match('%^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$%', $_GET['get_host']) || @preg_match('%^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$%', $_GET['get_host']))
 28:  28: 
 29:         $result = $db->query('SELECT poster_ip FROM '.$db->prefix.'posts WHERE id='.$get_host) or error('Unable to fetch post IP address', __FILE__, __LINE__, $db->error()); 29:         $result = $db->query('SELECT poster_ip FROM '.$db->prefix.'posts WHERE id='.$get_host) or error('Unable to fetch post IP address', __FILE__, __LINE__, $db->error());
 30:         if (!$db->num_rows($result)) 30:         if (!$db->num_rows($result))
 31:             message($lang_common['Bad request']); 31:             message($lang_common['Bad request'], false, '404 Not Found');
 32:  32: 
 33:         $ip = $db->result($result); 33:         $ip = $db->result($result);
 34:     } 34:     }
 43: // All other functions require moderator/admin access 43: // All other functions require moderator/admin access
 44: $fid = isset($_GET['fid']) ? intval($_GET['fid']) : 0; 44: $fid = isset($_GET['fid']) ? intval($_GET['fid']) : 0;
 45: if ($fid < 1) 45: if ($fid < 1)
 46:     message($lang_common['Bad request']); 46:     message($lang_common['Bad request'], false, '404 Not Found');
 47:  47: 
 48: $result = $db->query('SELECT moderators FROM '.$db->prefix.'forums WHERE id='.$fid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error()); 48: $result = $db->query('SELECT moderators FROM '.$db->prefix.'forums WHERE id='.$fid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
 49:  49: 
 51: $mods_array = ($moderators != '') ? unserialize($moderators) : array(); 51: $mods_array = ($moderators != '') ? unserialize($moderators) : array();
 52:  52: 
 53: if ($pun_user['g_id'] != PUN_ADMIN && ($pun_user['g_moderator'] == '0' || !array_key_exists($pun_user['username'], $mods_array))) 53: if ($pun_user['g_id'] != PUN_ADMIN && ($pun_user['g_moderator'] == '0' || !array_key_exists($pun_user['username'], $mods_array)))
 54:     message($lang_common['No permission']); 54:     message($lang_common['No permission'], false, '403 Forbidden');
 55:  55: 
 56: // Get topic/forum tracking data 56: // Get topic/forum tracking data
 57: if (!$pun_user['is_guest']) 57: if (!$pun_user['is_guest'])
 66: { 66: {
 67:     $tid = intval($_GET['tid']); 67:     $tid = intval($_GET['tid']);
 68:     if ($tid < 1) 68:     if ($tid < 1)
 69:         message($lang_common['Bad request']); 69:         message($lang_common['Bad request'], false, '404 Not Found');
 70:  70: 
 71:     // Fetch some info about the topic 71:     // Fetch some info about the topic
 72:     $result = $db->query('SELECT t.subject, t.num_replies, t.first_post_id, f.id AS forum_id, forum_name FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$fid.' AND t.id='.$tid.' AND t.moved_to IS NULL') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error()); 72:     $result = $db->query('SELECT t.subject, t.num_replies, t.first_post_id, f.id AS forum_id, forum_name FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$fid.' AND t.id='.$tid.' AND t.moved_to IS NULL') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
 73:     if (!$db->num_rows($result)) 73:     if (!$db->num_rows($result))
 74:         message($lang_common['Bad request']); 74:         message($lang_common['Bad request'], false, '404 Not Found');
 75:  75: 
 76:     $cur_topic = $db->fetch_assoc($result); 76:     $cur_topic = $db->fetch_assoc($result);
 77:  77: 
195:             // Move the posts to the new topic195:             // Move the posts to the new topic
196:             $db->query('UPDATE '.$db->prefix.'posts SET topic_id='.$new_tid.' WHERE id IN('.$posts.')') or error('Unable to move posts into new topic', __FILE__, __LINE__, $db->error());196:             $db->query('UPDATE '.$db->prefix.'posts SET topic_id='.$new_tid.' WHERE id IN('.$posts.')') or error('Unable to move posts into new topic', __FILE__, __LINE__, $db->error());
197: 197: 
 198:             // Apply every subscription to both topics
 199:             $db->query('INSERT INTO '.$db->prefix.'topic_subscriptions (user_id, topic_id) SELECT user_id, '.$new_tid.' FROM '.$db->prefix.'topic_subscriptions WHERE topic_id='.$tid) or error('Unable to copy existing subscriptions', __FILE__, __LINE__, $db->error());
 200: 
198:             // Get last_post, last_post_id, and last_poster from the topic and update it201:             // Get last_post, last_post_id, and last_poster from the topic and update it
199:             $result = $db->query('SELECT id, poster, posted FROM '.$db->prefix.'posts WHERE topic_id='.$tid.' ORDER BY id DESC LIMIT 1') or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());202:             $result = $db->query('SELECT id, poster, posted FROM '.$db->prefix.'posts WHERE topic_id='.$tid.' ORDER BY id DESC LIMIT 1') or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
200:             $last_post_data = $db->fetch_assoc($result);203:             $last_post_data = $db->fetch_assoc($result);
575:         // Merge the posts into the topic578:         // Merge the posts into the topic
576:         $db->query('UPDATE '.$db->prefix.'posts SET topic_id='.$merge_to_tid.' WHERE topic_id IN('.implode(',', $topics).')') or error('Unable to merge the posts into the topic', __FILE__, __LINE__, $db->error());579:         $db->query('UPDATE '.$db->prefix.'posts SET topic_id='.$merge_to_tid.' WHERE topic_id IN('.implode(',', $topics).')') or error('Unable to merge the posts into the topic', __FILE__, __LINE__, $db->error());
577: 580: 
578:         // Delete any subscriptions581:         // Update any subscriptions
579:         $db->query('DELETE FROM '.$db->prefix.'topic_subscriptions WHERE topic_id IN('.implode(',', $topics).') AND topic_id != '.$merge_to_tid) or error('Unable to delete subscriptions', __FILE__, __LINE__, $db->error());582:         $result = $db->query('SELECT user_id FROM '.$db->prefix.'topic_subscriptions WHERE topic_id IN ('.implode(',', $topics).')') or error('Unable to fetch subscriptions of merged topics', __FILE__, __LINE__, $db->error());
 583: 
 584:         $subscribed_users = array();
 585:         while ($cur_user_id = $db->result($result))
 586:             $subscribed_users[] = $cur_user_id;
 587:         $subscribed_users = array_unique($subscribed_users);
 588: 
 589:         $db->query('DELETE FROM '.$db->prefix.'topic_subscriptions WHERE topic_id IN ('.implode(',', $topics).')') or error('Unable to delete subscriptions of merged topics', __FILE__, __LINE__, $db->error());
 590: 
 591:         foreach ($subscribed_users as $cur_user_id)
 592:             $db->query('INSERT INTO '.$db->prefix.'topic_subscriptions (topic_id, user_id) VALUES ('.$merge_to_tid.', '.$cur_user_id.')') or error('Unable to re-enter subscriptions for merge topic', __FILE__, __LINE__, $db->error());
580: 593: 
581:         // Without redirection the old topics are removed594:         // Without redirection the old topics are removed
582:         if (!isset($_POST['with_redirect']))595:         if (!isset($_POST['with_redirect']))
781: // Fetch some info about the forum794: // Fetch some info about the forum
782: $result = $db->query('SELECT f.forum_name, f.redirect_url, f.num_topics, f.sort_by FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$fid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());795: $result = $db->query('SELECT f.forum_name, f.redirect_url, f.num_topics, f.sort_by FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$fid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
783: if (!$db->num_rows($result))796: if (!$db->num_rows($result))
784:     message($lang_common['Bad request']);797:     message($lang_common['Bad request'], false, '404 Not Found');
785: 798: 
786: $cur_forum = $db->fetch_assoc($result);799: $cur_forum = $db->fetch_assoc($result);
787: 800: 
875:         $item_status = ($topic_count % 2 == 0) ? 'roweven' : 'rowodd';888:         $item_status = ($topic_count % 2 == 0) ? 'roweven' : 'rowodd';
876:         $icon_type = 'icon';889:         $icon_type = 'icon';
877: 890: 
878:         if ($cur_topic['moved_to'] == null)891:         if (is_null($cur_topic['moved_to']))
879:         {892:         {
880:             $last_post = '<a href="viewtopic.php?pid='.$cur_topic['last_post_id'].'#p'.$cur_topic['last_post_id'].'">'.format_time($cur_topic['last_post']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['last_poster']).'</span>';893:             $last_post = '<a href="viewtopic.php?pid='.$cur_topic['last_post_id'].'#p'.$cur_topic['last_post_id'].'">'.format_time($cur_topic['last_post']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['last_poster']).'</span>';
881:             $ghost_topic = false;894:             $ghost_topic = false;


a/post.php b/post.php
 11:  11: 
 12:  12: 
 13: if ($pun_user['g_read_board'] == '0') 13: if ($pun_user['g_read_board'] == '0')
 14:     message($lang_common['No view']); 14:     message($lang_common['No view'], false, '403 Forbidden');
 15:  15: 
 16:  16: 
 17: $tid = isset($_GET['tid']) ? intval($_GET['tid']) : 0; 17: $tid = isset($_GET['tid']) ? intval($_GET['tid']) : 0;
 18: $fid = isset($_GET['fid']) ? intval($_GET['fid']) : 0; 18: $fid = isset($_GET['fid']) ? intval($_GET['fid']) : 0;
 19: if ($tid < 1 && $fid < 1 || $tid > 0 && $fid > 0) 19: if ($tid < 1 && $fid < 1 || $tid > 0 && $fid > 0)
 20:     message($lang_common['Bad request']); 20:     message($lang_common['Bad request'], false, '404 Not Found');
 21:  21: 
 22: // Fetch some info about the topic and/or the forum 22: // Fetch some info about the topic and/or the forum
 23: if ($tid) 23: if ($tid)
 26:     $result = $db->query('SELECT f.id, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$fid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error()); 26:     $result = $db->query('SELECT f.id, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$fid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
 27:  27: 
 28: if (!$db->num_rows($result)) 28: if (!$db->num_rows($result))
 29:     message($lang_common['Bad request']); 29:     message($lang_common['Bad request'], false, '404 Not Found');
 30:  30: 
 31: $cur_posting = $db->fetch_assoc($result); 31: $cur_posting = $db->fetch_assoc($result);
 32: $is_subscribed = $tid && $cur_posting['is_subscribed']; 32: $is_subscribed = $tid && $cur_posting['is_subscribed'];
 47:     ($fid && (($cur_posting['post_topics'] == '' && $pun_user['g_post_topics'] == '0') || $cur_posting['post_topics'] == '0')) || 47:     ($fid && (($cur_posting['post_topics'] == '' && $pun_user['g_post_topics'] == '0') || $cur_posting['post_topics'] == '0')) ||
 48:     (isset($cur_posting['closed']) && $cur_posting['closed'] == '1')) && 48:     (isset($cur_posting['closed']) && $cur_posting['closed'] == '1')) &&
 49:     !$is_admmod) 49:     !$is_admmod)
 50:     message($lang_common['No permission']); 50:     message($lang_common['No permission'], false, '403 Forbidden');
 51:  51: 
 52: // Load the post.php language file 52: // Load the post.php language file
 53: require PUN_ROOT.'lang/'.$pun_user['language'].'/post.php'; 53: require PUN_ROOT.'lang/'.$pun_user['language'].'/post.php';
 91:     else 91:     else
 92:     { 92:     {
 93:         $username = pun_trim($_POST['req_username']); 93:         $username = pun_trim($_POST['req_username']);
 94:         $email = strtolower(trim(($pun_config['p_force_guest_email'] == '1') ? $_POST['req_email'] : $_POST['email'])); 94:         $email = strtolower(pun_trim(($pun_config['p_force_guest_email'] == '1') ? $_POST['req_email'] : $_POST['email']));
 95:         $banned_email = false; 95:         $banned_email = false;
 96:  96: 
 97:         // Load the register.php/prof_reg.php language files 97:         // Load the register.php/prof_reg.php language files
191:                 $new_pid = $db->insert_id();191:                 $new_pid = $db->insert_id();
192:             }192:             }
193: 193: 
194:             // Count number of replies in the topic 
195:             $result = $db->query('SELECT COUNT(id) FROM '.$db->prefix.'posts WHERE topic_id='.$tid) or error('Unable to fetch post count for topic', __FILE__, __LINE__, $db->error()); 
196:             $num_replies = $db->result($result, 0) - 1; 
197:  
198:             // Update topic194:             // Update topic
199:             $db->query('UPDATE '.$db->prefix.'topics SET num_replies='.$num_replies.', last_post='.$now.', last_post_id='.$new_pid.', last_poster=\''.$db->escape($username).'\' WHERE id='.$tid) or error('Unable to update topic', __FILE__, __LINE__, $db->error());195:             $db->query('UPDATE '.$db->prefix.'topics SET num_replies=num_replies+1, last_post='.$now.', last_post_id='.$new_pid.', last_poster=\''.$db->escape($username).'\' WHERE id='.$tid) or error('Unable to update topic', __FILE__, __LINE__, $db->error());
200: 196: 
201:             update_search_index('post', $new_pid, $message);197:             update_search_index('post', $new_pid, $message);
202: 198: 
443:     {439:     {
444:         $qid = intval($_GET['qid']);440:         $qid = intval($_GET['qid']);
445:         if ($qid < 1)441:         if ($qid < 1)
446:             message($lang_common['Bad request']);442:             message($lang_common['Bad request'], false, '404 Not Found');
447: 443: 
448:         $result = $db->query('SELECT poster, message FROM '.$db->prefix.'posts WHERE id='.$qid.' AND topic_id='.$tid) or error('Unable to fetch quote info', __FILE__, __LINE__, $db->error());444:         $result = $db->query('SELECT poster, message FROM '.$db->prefix.'posts WHERE id='.$qid.' AND topic_id='.$tid) or error('Unable to fetch quote info', __FILE__, __LINE__, $db->error());
449:         if (!$db->num_rows($result))445:         if (!$db->num_rows($result))
450:             message($lang_common['Bad request']);446:             message($lang_common['Bad request'], false, '404 Not Found');
451: 447: 
452:         list($q_poster, $q_message) = $db->fetch_row($result);448:         list($q_poster, $q_message) = $db->fetch_row($result);
453: 449: 


a/profile.php b/profile.php
 18: $section = isset($_GET['section']) ? $_GET['section'] : null; 18: $section = isset($_GET['section']) ? $_GET['section'] : null;
 19: $id = isset($_GET['id']) ? intval($_GET['id']) : 0; 19: $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
 20: if ($id < 2) 20: if ($id < 2)
 21:     message($lang_common['Bad request']); 21:     message($lang_common['Bad request'], false, '404 Not Found');
 22:  22: 
 23: if ($action != 'change_pass' || !isset($_GET['key'])) 23: if ($action != 'change_pass' || !isset($_GET['key']))
 24: { 24: {
 25:     if ($pun_user['g_read_board'] == '0') 25:     if ($pun_user['g_read_board'] == '0')
 26:         message($lang_common['No view']); 26:         message($lang_common['No view'], false, '403 Forbidden');
 27:     else if ($pun_user['g_view_users'] == '0' && ($pun_user['is_guest'] || $pun_user['id'] != $id)) 27:     else if ($pun_user['g_view_users'] == '0' && ($pun_user['is_guest'] || $pun_user['id'] != $id))
 28:         message($lang_common['No permission']); 28:         message($lang_common['No permission'], false, '403 Forbidden');
 29: } 29: }
 30:  30: 
 31: // Load the profile.php/register.php language file 31: // Load the profile.php/register.php language file
 65:     if ($pun_user['id'] != $id) 65:     if ($pun_user['id'] != $id)
 66:     { 66:     {
 67:         if (!$pun_user['is_admmod']) // A regular user trying to change another users password? 67:         if (!$pun_user['is_admmod']) // A regular user trying to change another users password?
 68:             message($lang_common['No permission']); 68:             message($lang_common['No permission'], false, '403 Forbidden');
 69:         else if ($pun_user['g_moderator'] == '1') // A moderator trying to change a users password? 69:         else if ($pun_user['g_moderator'] == '1') // A moderator trying to change a users password?
 70:         { 70:         {
 71:             $result = $db->query('SELECT u.group_id, g.g_moderator FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON (g.g_id=u.group_id) WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); 71:             $result = $db->query('SELECT u.group_id, g.g_moderator FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON (g.g_id=u.group_id) WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
 72:             if (!$db->num_rows($result)) 72:             if (!$db->num_rows($result))
 73:                 message($lang_common['Bad request']); 73:                 message($lang_common['Bad request'], false, '404 Not Found');
 74:  74: 
 75:             list($group_id, $is_moderator) = $db->fetch_row($result); 75:             list($group_id, $is_moderator) = $db->fetch_row($result);
 76:  76: 
 77:             if ($pun_user['g_mod_edit_users'] == '0' || $pun_user['g_mod_change_passwords'] == '0' || $group_id == PUN_ADMIN || $is_moderator == '1') 77:             if ($pun_user['g_mod_edit_users'] == '0' || $pun_user['g_mod_change_passwords'] == '0' || $group_id == PUN_ADMIN || $is_moderator == '1')
 78:                 message($lang_common['No permission']); 78:                 message($lang_common['No permission'], false, '403 Forbidden');
 79:         } 79:         }
 80:     } 80:     }
 81:  81: 
161:     if ($pun_user['id'] != $id)161:     if ($pun_user['id'] != $id)
162:     {162:     {
163:         if (!$pun_user['is_admmod']) // A regular user trying to change another users email?163:         if (!$pun_user['is_admmod']) // A regular user trying to change another users email?
164:             message($lang_common['No permission']);164:             message($lang_common['No permission'], false, '403 Forbidden');
165:         else if ($pun_user['g_moderator'] == '1') // A moderator trying to change a users email?165:         else if ($pun_user['g_moderator'] == '1') // A moderator trying to change a users email?
166:         {166:         {
167:             $result = $db->query('SELECT u.group_id, g.g_moderator FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON (g.g_id=u.group_id) WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());167:             $result = $db->query('SELECT u.group_id, g.g_moderator FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON (g.g_id=u.group_id) WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
168:             if (!$db->num_rows($result))168:             if (!$db->num_rows($result))
169:                 message($lang_common['Bad request']);169:                 message($lang_common['Bad request'], false, '404 Not Found');
170: 170: 
171:             list($group_id, $is_moderator) = $db->fetch_row($result);171:             list($group_id, $is_moderator) = $db->fetch_row($result);
172: 172: 
173:             if ($pun_user['g_mod_edit_users'] == '0' || $group_id == PUN_ADMIN || $is_moderator == '1')173:             if ($pun_user['g_mod_edit_users'] == '0' || $group_id == PUN_ADMIN || $is_moderator == '1')
174:                 message($lang_common['No permission']);174:                 message($lang_common['No permission'], false, '403 Forbidden');
175:         }175:         }
176:     }176:     }
177: 177: 
199:         require PUN_ROOT.'include/email.php';199:         require PUN_ROOT.'include/email.php';
200: 200: 
201:         // Validate the email address201:         // Validate the email address
202:         $new_email = strtolower(trim($_POST['req_new_email']));202:         $new_email = strtolower(pun_trim($_POST['req_new_email']));
203:         if (!is_valid_email($new_email))203:         if (!is_valid_email($new_email))
204:             message($lang_common['Invalid email']);204:             message($lang_common['Invalid email']);
205: 205: 
316:         message($lang_profile['Avatars disabled']);316:         message($lang_profile['Avatars disabled']);
317: 317: 
318:     if ($pun_user['id'] != $id && !$pun_user['is_admmod'])318:     if ($pun_user['id'] != $id && !$pun_user['is_admmod'])
319:         message($lang_common['No permission']);319:         message($lang_common['No permission'], false, '403 Forbidden');
320: 320: 
321:     if (isset($_POST['form_sent']))321:     if (isset($_POST['form_sent']))
322:     {322:     {
439: else if ($action == 'delete_avatar')439: else if ($action == 'delete_avatar')
440: {440: {
441:     if ($pun_user['id'] != $id && !$pun_user['is_admmod'])441:     if ($pun_user['id'] != $id && !$pun_user['is_admmod'])
442:         message($lang_common['No permission']);442:         message($lang_common['No permission'], false, '403 Forbidden');
443: 443: 
444:     confirm_referrer('profile.php');444:     confirm_referrer('profile.php');
445: 445: 
452: else if (isset($_POST['update_group_membership']))452: else if (isset($_POST['update_group_membership']))
453: {453: {
454:     if ($pun_user['g_id'] > PUN_ADMIN)454:     if ($pun_user['g_id'] > PUN_ADMIN)
455:         message($lang_common['No permission']);455:         message($lang_common['No permission'], false, '403 Forbidden');
456: 456: 
457:     confirm_referrer('profile.php');457:     confirm_referrer('profile.php');
458: 458: 
496: else if (isset($_POST['update_forums']))496: else if (isset($_POST['update_forums']))
497: {497: {
498:     if ($pun_user['g_id'] > PUN_ADMIN)498:     if ($pun_user['g_id'] > PUN_ADMIN)
499:         message($lang_common['No permission']);499:         message($lang_common['No permission'], false, '403 Forbidden');
500: 500: 
501:     confirm_referrer('profile.php');501:     confirm_referrer('profile.php');
502: 502: 
537: else if (isset($_POST['ban']))537: else if (isset($_POST['ban']))
538: {538: {
539:     if ($pun_user['g_id'] != PUN_ADMIN && ($pun_user['g_moderator'] != '1' || $pun_user['g_mod_ban_users'] == '0'))539:     if ($pun_user['g_id'] != PUN_ADMIN && ($pun_user['g_moderator'] != '1' || $pun_user['g_mod_ban_users'] == '0'))
540:         message($lang_common['No permission']);540:         message($lang_common['No permission'], false, '403 Forbidden');
541: 541: 
542:     // Get the username of the user we are banning542:     // Get the username of the user we are banning
543:     $result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE id='.$id) or error('Unable to fetch username', __FILE__, __LINE__, $db->error());543:     $result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE id='.$id) or error('Unable to fetch username', __FILE__, __LINE__, $db->error());
558: else if (isset($_POST['delete_user']) || isset($_POST['delete_user_comply']))558: else if (isset($_POST['delete_user']) || isset($_POST['delete_user_comply']))
559: {559: {
560:     if ($pun_user['g_id'] > PUN_ADMIN)560:     if ($pun_user['g_id'] > PUN_ADMIN)
561:         message($lang_common['No permission']);561:         message($lang_common['No permission'], false, '403 Forbidden');
562: 562: 
563:     confirm_referrer('profile.php');563:     confirm_referrer('profile.php');
564: 564: 
679:     // Fetch the user group of the user we are editing679:     // Fetch the user group of the user we are editing
680:     $result = $db->query('SELECT u.username, u.group_id, g.g_moderator FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON (g.g_id=u.group_id) WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());680:     $result = $db->query('SELECT u.username, u.group_id, g.g_moderator FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON (g.g_id=u.group_id) WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
681:     if (!$db->num_rows($result))681:     if (!$db->num_rows($result))
682:         message($lang_common['Bad request']);682:         message($lang_common['Bad request'], false, '404 Not Found');
683: 683: 
684:     list($old_username, $group_id, $is_moderator) = $db->fetch_row($result);684:     list($old_username, $group_id, $is_moderator) = $db->fetch_row($result);
685: 685: 
689:         ($pun_user['g_mod_edit_users'] == '0' ||                                                    // mods aren't allowed to edit users689:         ($pun_user['g_mod_edit_users'] == '0' ||                                                    // mods aren't allowed to edit users
690:         $group_id == PUN_ADMIN ||                                                                    // or the user is an admin690:         $group_id == PUN_ADMIN ||                                                                    // or the user is an admin
691:         $is_moderator))))                                                                            // or the user is another mod691:         $is_moderator))))                                                                            // or the user is another mod
692:         message($lang_common['No permission']);692:         message($lang_common['No permission'], false, '403 Forbidden');
693: 693: 
694:     if ($pun_user['is_admmod'])694:     if ($pun_user['is_admmod'])
695:         confirm_referrer('profile.php');695:         confirm_referrer('profile.php');
714:                 $languages = forum_list_langs();714:                 $languages = forum_list_langs();
715:                 $form['language'] = pun_trim($_POST['form']['language']);715:                 $form['language'] = pun_trim($_POST['form']['language']);
716:                 if (!in_array($form['language'], $languages))716:                 if (!in_array($form['language'], $languages))
717:                     message($lang_common['Bad request']);717:                     message($lang_common['Bad request'], false, '404 Not Found');
718:             }718:             }
719: 719: 
720:             if ($pun_user['is_admmod'])720:             if ($pun_user['is_admmod'])
750:                 require PUN_ROOT.'include/email.php';750:                 require PUN_ROOT.'include/email.php';
751: 751: 
752:                 // Validate the email address752:                 // Validate the email address
753:                 $form['email'] = strtolower(trim($_POST['req_email']));753:                 $form['email'] = strtolower(pun_trim($_POST['req_email']));
754:                 if (!is_valid_email($form['email']))754:                 if (!is_valid_email($form['email']))
755:                     message($lang_common['Invalid email']);755:                     message($lang_common['Invalid email']);
756:             }756:             }
884:                 $styles = forum_list_styles();884:                 $styles = forum_list_styles();
885:                 $form['style'] = pun_trim($_POST['form']['style']);885:                 $form['style'] = pun_trim($_POST['form']['style']);
886:                 if (!in_array($form['style'], $styles))886:                 if (!in_array($form['style'], $styles))
887:                     message($lang_common['Bad request']);887:                     message($lang_common['Bad request'], false, '404 Not Found');
888:             }888:             }
889: 889: 
890:             break;890:             break;
927:     // If we changed the username we have to update some stuff927:     // If we changed the username we have to update some stuff
928:     if ($username_updated)928:     if ($username_updated)
929:     {929:     {
 930:         $db->query('UPDATE '.$db->prefix.'bans SET username=\''.$db->escape($form['username']).'\' WHERE username=\''.$db->escape($old_username).'\'') or error('Unable to update bans', __FILE__, __LINE__, $db->error());
 931:         // If any bans were updated, we will need to know because the cache will need to be regenerated.
 932:         if ($db->affected_rows() > 0)
 933:             $bans_updated = true;
930:         $db->query('UPDATE '.$db->prefix.'posts SET poster=\''.$db->escape($form['username']).'\' WHERE poster_id='.$id) or error('Unable to update posts', __FILE__, __LINE__, $db->error());934:         $db->query('UPDATE '.$db->prefix.'posts SET poster=\''.$db->escape($form['username']).'\' WHERE poster_id='.$id) or error('Unable to update posts', __FILE__, __LINE__, $db->error());
931:         $db->query('UPDATE '.$db->prefix.'posts SET edited_by=\''.$db->escape($form['username']).'\' WHERE edited_by=\''.$db->escape($old_username).'\'') or error('Unable to update posts', __FILE__, __LINE__, $db->error());935:         $db->query('UPDATE '.$db->prefix.'posts SET edited_by=\''.$db->escape($form['username']).'\' WHERE edited_by=\''.$db->escape($old_username).'\'') or error('Unable to update posts', __FILE__, __LINE__, $db->error());
932:         $db->query('UPDATE '.$db->prefix.'topics SET poster=\''.$db->escape($form['username']).'\' WHERE poster=\''.$db->escape($old_username).'\'') or error('Unable to update topics', __FILE__, __LINE__, $db->error());936:         $db->query('UPDATE '.$db->prefix.'topics SET poster=\''.$db->escape($form['username']).'\' WHERE poster=\''.$db->escape($old_username).'\'') or error('Unable to update topics', __FILE__, __LINE__, $db->error());
965:             require PUN_ROOT.'include/cache.php';969:             require PUN_ROOT.'include/cache.php';
966: 970: 
967:         generate_users_info_cache();971:         generate_users_info_cache();
 972: 
 973:         // Check if the bans table was updated and regenerate the bans cache when needed
 974:         if (isset($bans_updated))
 975:             generate_bans_cache();
968:     }976:     }
969: 977: 
970:     redirect('profile.php?section='.$section.'&amp;id='.$id, $lang_profile['Profile redirect']);978:     redirect('profile.php?section='.$section.'&amp;id='.$id, $lang_profile['Profile redirect']);
973: 981: 
974: $result = $db->query('SELECT u.username, u.email, u.title, u.realname, u.url, u.jabber, u.icq, u.msn, u.aim, u.yahoo, u.location, u.signature, u.disp_topics, u.disp_posts, u.email_setting, u.notify_with_post, u.auto_notify, u.show_smilies, u.show_img, u.show_img_sig, u.show_avatars, u.show_sig, u.timezone, u.dst, u.language, u.style, u.num_posts, u.last_post, u.registered, u.registration_ip, u.admin_note, u.date_format, u.time_format, u.last_visit, g.g_id, g.g_user_title, g.g_moderator FROM '.$db->prefix.'users AS u LEFT JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());982: $result = $db->query('SELECT u.username, u.email, u.title, u.realname, u.url, u.jabber, u.icq, u.msn, u.aim, u.yahoo, u.location, u.signature, u.disp_topics, u.disp_posts, u.email_setting, u.notify_with_post, u.auto_notify, u.show_smilies, u.show_img, u.show_img_sig, u.show_avatars, u.show_sig, u.timezone, u.dst, u.language, u.style, u.num_posts, u.last_post, u.registered, u.registration_ip, u.admin_note, u.date_format, u.time_format, u.last_visit, g.g_id, g.g_user_title, g.g_moderator FROM '.$db->prefix.'users AS u LEFT JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
975: if (!$db->num_rows($result))983: if (!$db->num_rows($result))
976:     message($lang_common['Bad request']);984:     message($lang_common['Bad request'], false, '404 Not Found');
977: 985: 
978: $user = $db->fetch_assoc($result);986: $user = $db->fetch_assoc($result);
979: 987: 
1666:     else if ($section == 'admin')1674:     else if ($section == 'admin')
1667:     {1675:     {
1668:         if (!$pun_user['is_admmod'] || ($pun_user['g_moderator'] == '1' && $pun_user['g_mod_ban_users'] == '0'))1676:         if (!$pun_user['is_admmod'] || ($pun_user['g_moderator'] == '1' && $pun_user['g_mod_ban_users'] == '0'))
1669:             message($lang_common['Bad request']);1677:             message($lang_common['Bad request'], false, '403 Forbidden');
1670: 1678: 
1671:         $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_common['Profile'], $lang_profile['Section admin']);1679:         $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_common['Profile'], $lang_profile['Section admin']);
1672:         define('PUN_ACTIVE_PAGE', 'profile');1680:         define('PUN_ACTIVE_PAGE', 'profile');


a/register.php b/register.php
 73:  73: 
 74:  74: 
 75:     $username = pun_trim($_POST['req_user']); 75:     $username = pun_trim($_POST['req_user']);
 76:     $email1 = strtolower(trim($_POST['req_email1'])); 76:     $email1 = strtolower(pun_trim($_POST['req_email1']));
 77:  77: 
 78:     if ($pun_config['o_regs_verify'] == '1') 78:     if ($pun_config['o_regs_verify'] == '1')
 79:     { 79:     {
 80:         $email2 = strtolower(trim($_POST['req_email2'])); 80:         $email2 = strtolower(pun_trim($_POST['req_email2']));
 81:  81: 
 82:         $password1 = random_pass(8); 82:         $password1 = random_pass(8);
 83:         $password2 = $password1; 83:         $password2 = $password1;


a/search.php b/search.php
 18:  18: 
 19:  19: 
 20: if ($pun_user['g_read_board'] == '0') 20: if ($pun_user['g_read_board'] == '0')
 21:     message($lang_common['No view']); 21:     message($lang_common['No view'], false, '403 Forbidden');
 22: else if ($pun_user['g_search'] == '0') 22: else if ($pun_user['g_search'] == '0')
 23:     message($lang_search['No search permission']); 23:     message($lang_search['No search permission'], false, '403 Forbidden');
 24:  24: 
 25: require PUN_ROOT.'include/search_idx.php'; 25: require PUN_ROOT.'include/search_idx.php';
 26:  26: 
 44:     { 44:     {
 45:         $search_id = intval($_GET['search_id']); 45:         $search_id = intval($_GET['search_id']);
 46:         if ($search_id < 1) 46:         if ($search_id < 1)
 47:             message($lang_common['Bad request']); 47:             message($lang_common['Bad request'], false, '404 Not Found');
 48:     } 48:     }
 49:     // If it's a regular search (keywords and/or author) 49:     // If it's a regular search (keywords and/or author)
 50:     else if ($action == 'search') 50:     else if ($action == 'search')
 73:     { 73:     {
 74:         $user_id = (isset($_GET['user_id'])) ? intval($_GET['user_id']) : $pun_user['id']; 74:         $user_id = (isset($_GET['user_id'])) ? intval($_GET['user_id']) : $pun_user['id'];
 75:         if ($user_id < 2) 75:         if ($user_id < 2)
 76:             message($lang_common['Bad request']); 76:             message($lang_common['Bad request'], false, '404 Not Found');
 77:  77: 
 78:         // Subscribed topics can only be viewed by admins, moderators and the users themselves 78:         // Subscribed topics can only be viewed by admins, moderators and the users themselves
 79:         if ($action == 'show_subscriptions' && !$pun_user['is_admmod'] && $user_id != $pun_user['id']) 79:         if ($action == 'show_subscriptions' && !$pun_user['is_admmod'] && $user_id != $pun_user['id'])
 80:             message($lang_common['No permission']); 80:             message($lang_common['No permission'], false, '403 Forbidden');
 81:     } 81:     }
 82:     else if ($action == 'show_recent') 82:     else if ($action == 'show_recent')
 83:         $interval = isset($_GET['value']) ? intval($_GET['value']) : 86400; 83:         $interval = isset($_GET['value']) ? intval($_GET['value']) : 86400;
323:             if ($action == 'show_new')323:             if ($action == 'show_new')
324:             {324:             {
325:                 if ($pun_user['is_guest'])325:                 if ($pun_user['is_guest'])
326:                     message($lang_common['No permission']);326:                     message($lang_common['No permission'], false, '403 Forbidden');
327: 327: 
328:                 $result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=t.forum_id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.last_post>'.$pun_user['last_visit'].' AND t.moved_to IS NULL'.(isset($_GET['fid']) ? ' AND t.forum_id='.intval($_GET['fid']) : '').' ORDER BY t.last_post DESC') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());328:                 $result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=t.forum_id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.last_post>'.$pun_user['last_visit'].' AND t.moved_to IS NULL'.(isset($_GET['fid']) ? ' AND t.forum_id='.intval($_GET['fid']) : '').' ORDER BY t.last_post DESC') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
329:                 $num_hits = $db->num_rows($result);329:                 $num_hits = $db->num_rows($result);
517:                 if ($db->num_rows($result))517:                 if ($db->num_rows($result))
518:                     $subscriber_name = $db->result($result);518:                     $subscriber_name = $db->result($result);
519:                 else519:                 else
520:                     message($lang_common['Bad request']);520:                     message($lang_common['Bad request'], false, '404 Not Found');
521: 521: 
522:                 $crumbs_text['search_type'] = '<a href="search.php?action=show_subscriptions&amp;user_id='.$subscriber_id.'">'.sprintf($lang_search['Quick search show_subscriptions'], pun_htmlspecialchars($subscriber_name)).'</a>';522:                 $crumbs_text['search_type'] = '<a href="search.php?action=show_subscriptions&amp;user_id='.$subscriber_id.'">'.sprintf($lang_search['Quick search show_subscriptions'], pun_htmlspecialchars($subscriber_name)).'</a>';
523:             }523:             }


a/style/Technetium.css b/style/Technetium.css
1029:     overflow-y: auto1029:     overflow-y: auto
1030:     }1030:     }
1031: 1031: 
1032: .pun .postmsg img.postimg, .pun .postmsg a img.postimg {1032: .pun .postmsg .postimg img, .pun .postmsg a .postimg img {
1033:     max-width: 100%;1033:     max-width: 100%;
1034:     vertical-align: middle;1034:     vertical-align: middle;
1035:     }1035:     }


a/userlist.php b/userlist.php
 11:  11: 
 12:  12: 
 13: if ($pun_user['g_read_board'] == '0') 13: if ($pun_user['g_read_board'] == '0')
 14:     message($lang_common['No view']); 14:     message($lang_common['No view'], false, '403 Forbidden');
 15: else if ($pun_user['g_view_users'] == '0') 15: else if ($pun_user['g_view_users'] == '0')
 16:     message($lang_common['No permission']); 16:     message($lang_common['No permission'], false, '403 Forbidden');
 17:  17: 
 18: // Load the userlist.php language file 18: // Load the userlist.php language file
 19: require PUN_ROOT.'lang/'.$pun_user['language'].'/userlist.php'; 19: require PUN_ROOT.'lang/'.$pun_user['language'].'/userlist.php';


a/viewforum.php b/viewforum.php
 11:  11: 
 12:  12: 
 13: if ($pun_user['g_read_board'] == '0') 13: if ($pun_user['g_read_board'] == '0')
 14:     message($lang_common['No view']); 14:     message($lang_common['No view'], false, '403 Forbidden');
 15:  15: 
 16:  16: 
 17: $id = isset($_GET['id']) ? intval($_GET['id']) : 0; 17: $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
 18: if ($id < 1) 18: if ($id < 1)
 19:     message($lang_common['Bad request']); 19:     message($lang_common['Bad request'], false, '404 Not Found');
 20:  20: 
 21: // Load the viewforum.php language file 21: // Load the viewforum.php language file
 22: require PUN_ROOT.'lang/'.$pun_user['language'].'/forum.php'; 22: require PUN_ROOT.'lang/'.$pun_user['language'].'/forum.php';
 28:     $result = $db->query('SELECT f.forum_name, f.redirect_url, f.moderators, f.num_topics, f.sort_by, fp.post_topics, 0 AS is_subscribed FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$id) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error()); 28:     $result = $db->query('SELECT f.forum_name, f.redirect_url, f.moderators, f.num_topics, f.sort_by, fp.post_topics, 0 AS is_subscribed FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$id) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
 29:  29: 
 30: if (!$db->num_rows($result)) 30: if (!$db->num_rows($result))
 31:     message($lang_common['Bad request']); 31:     message($lang_common['Bad request'], false, '404 Not Found');
 32:  32: 
 33: $cur_forum = $db->fetch_assoc($result); 33: $cur_forum = $db->fetch_assoc($result);
 34:  34: 
169:         $item_status = ($topic_count % 2 == 0) ? 'roweven' : 'rowodd';169:         $item_status = ($topic_count % 2 == 0) ? 'roweven' : 'rowodd';
170:         $icon_type = 'icon';170:         $icon_type = 'icon';
171: 171: 
172:         if ($cur_topic['moved_to'] == null)172:         if (is_null($cur_topic['moved_to']))
173:             $last_post = '<a href="viewtopic.php?pid='.$cur_topic['last_post_id'].'#p'.$cur_topic['last_post_id'].'">'.format_time($cur_topic['last_post']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['last_poster']).'</span>';173:             $last_post = '<a href="viewtopic.php?pid='.$cur_topic['last_post_id'].'#p'.$cur_topic['last_post_id'].'">'.format_time($cur_topic['last_post']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['last_poster']).'</span>';
174:         else174:         else
175:             $last_post = '- - -';175:             $last_post = '- - -';
198:             $item_status .= ' iclosed';198:             $item_status .= ' iclosed';
199:         }199:         }
200: 200: 
201:         if (!$pun_user['is_guest'] && $cur_topic['last_post'] > $pun_user['last_visit'] && (!isset($tracked_topics['topics'][$cur_topic['id']]) || $tracked_topics['topics'][$cur_topic['id']] < $cur_topic['last_post']) && (!isset($tracked_topics['forums'][$id]) || $tracked_topics['forums'][$id] < $cur_topic['last_post']) && $cur_topic['moved_to'] == null)201:         if (!$pun_user['is_guest'] && $cur_topic['last_post'] > $pun_user['last_visit'] && (!isset($tracked_topics['topics'][$cur_topic['id']]) || $tracked_topics['topics'][$cur_topic['id']] < $cur_topic['last_post']) && (!isset($tracked_topics['forums'][$id]) || $tracked_topics['forums'][$id] < $cur_topic['last_post']) && is_null($cur_topic['moved_to']))
202:         {202:         {
203:             $item_status .= ' inew';203:             $item_status .= ' inew';
204:             $icon_type = 'icon icon-new';204:             $icon_type = 'icon icon-new';
245:                             </div>245:                             </div>
246:                         </div>246:                         </div>
247:                     </td>247:                     </td>
248:                     <td class="tc2"><?php echo ($cur_topic['moved_to'] == null) ? forum_number_format($cur_topic['num_replies']) : '-' ?></td>248:                     <td class="tc2"><?php echo (is_null($cur_topic['moved_to'])) ? forum_number_format($cur_topic['num_replies']) : '-' ?></td>
249: <?php if ($pun_config['o_topic_views'] == '1'): ?>                    <td class="tc3"><?php echo ($cur_topic['moved_to'] == null) ? forum_number_format($cur_topic['num_views']) : '-' ?></td>249: <?php if ($pun_config['o_topic_views'] == '1'): ?>                    <td class="tc3"><?php echo (is_null($cur_topic['moved_to'])) ? forum_number_format($cur_topic['num_views']) : '-' ?></td>
250: <?php endif; ?>                    <td class="tcr"><?php echo $last_post ?></td>250: <?php endif; ?>                    <td class="tcr"><?php echo $last_post ?></td>
251:                 </tr>251:                 </tr>
252: <?php252: <?php


a/viewtopic.php b/viewtopic.php
 11:  11: 
 12:  12: 
 13: if ($pun_user['g_read_board'] == '0') 13: if ($pun_user['g_read_board'] == '0')
 14:     message($lang_common['No view']); 14:     message($lang_common['No view'], false, '403 Forbidden');
 15:  15: 
 16:  16: 
 17: $action = isset($_GET['action']) ? $_GET['action'] : null; 17: $action = isset($_GET['action']) ? $_GET['action'] : null;
 18: $id = isset($_GET['id']) ? intval($_GET['id']) : 0; 18: $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
 19: $pid = isset($_GET['pid']) ? intval($_GET['pid']) : 0; 19: $pid = isset($_GET['pid']) ? intval($_GET['pid']) : 0;
 20: if ($id < 1 && $pid < 1) 20: if ($id < 1 && $pid < 1)
 21:     message($lang_common['Bad request']); 21:     message($lang_common['Bad request'], false, '404 Not Found');
 22:  22: 
 23: // Load the viewtopic.php language file 23: // Load the viewtopic.php language file
 24: require PUN_ROOT.'lang/'.$pun_user['language'].'/topic.php'; 24: require PUN_ROOT.'lang/'.$pun_user['language'].'/topic.php';
 29: { 29: {
 30:     $result = $db->query('SELECT topic_id, posted FROM '.$db->prefix.'posts WHERE id='.$pid) or error('Unable to fetch topic ID', __FILE__, __LINE__, $db->error()); 30:     $result = $db->query('SELECT topic_id, posted FROM '.$db->prefix.'posts WHERE id='.$pid) or error('Unable to fetch topic ID', __FILE__, __LINE__, $db->error());
 31:     if (!$db->num_rows($result)) 31:     if (!$db->num_rows($result))
 32:         message($lang_common['Bad request']); 32:         message($lang_common['Bad request'], false, '404 Not Found');
 33:  33: 
 34:     list($id, $posted) = $db->fetch_row($result); 34:     list($id, $posted) = $db->fetch_row($result);
 35:  35: 
 85:     $result = $db->query('SELECT t.subject, t.closed, t.num_replies, t.sticky, t.first_post_id, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 AS is_subscribed FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id='.$id.' AND t.moved_to IS NULL') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error()); 85:     $result = $db->query('SELECT t.subject, t.closed, t.num_replies, t.sticky, t.first_post_id, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 AS is_subscribed FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id='.$id.' AND t.moved_to IS NULL') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
 86:  86: 
 87: if (!$db->num_rows($result)) 87: if (!$db->num_rows($result))
 88:     message($lang_common['Bad request']); 88:     message($lang_common['Bad request'], false, '404 Not Found');
 89:  89: 
 90: $cur_topic = $db->fetch_assoc($result); 90: $cur_topic = $db->fetch_assoc($result);
 91:  91: 


hdiff - version: 2.1.0 (modified)