fluxbb-1.4.8 to fluxbb-1.4.12 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';
127:                                 <tr>127:                                 <tr>
128:                                     <th scope="row"><?php echo $lang_admin_bans['IP label'] ?></th>128:                                     <th scope="row"><?php echo $lang_admin_bans['IP label'] ?></th>
129:                                     <td>129:                                     <td>
130:                                         <input type="text" name="ban_ip" size="45" maxlength="255" value="<?php if (isset($ban_ip)) echo $ban_ip; ?>" tabindex="2" />130:                                         <input type="text" name="ban_ip" size="45" maxlength="255" value="<?php if (isset($ban_ip)) echo pun_htmlspecialchars($ban_ip); ?>" tabindex="2" />
131:                                         <span><?php echo $lang_admin_bans['IP help'] ?><?php if ($ban_user != '' && isset($user_id)) printf(' '.$lang_admin_bans['IP help link'], '<a href="admin_users.php?ip_stats='.$user_id.'">'.$lang_admin_common['here'].'</a>') ?></span>131:                                         <span><?php echo $lang_admin_bans['IP help'] ?><?php if ($ban_user != '' && isset($user_id)) printf(' '.$lang_admin_bans['IP help link'], '<a href="admin_users.php?ip_stats='.$user_id.'">'.$lang_admin_common['here'].'</a>') ?></span>
132:                                     </td>132:                                     </td>
133:                                 </tr>133:                                 </tr>
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: 
435:                 <tr>435:                 <tr>
436:                     <td class="tcl"><?php echo ($ban_data['username'] != '') ? pun_htmlspecialchars($ban_data['username']) : '&#160;' ?></td>436:                     <td class="tcl"><?php echo ($ban_data['username'] != '') ? pun_htmlspecialchars($ban_data['username']) : '&#160;' ?></td>
437:                     <td class="tc2"><?php echo ($ban_data['email'] != '') ? $ban_data['email'] : '&#160;' ?></td>437:                     <td class="tc2"><?php echo ($ban_data['email'] != '') ? $ban_data['email'] : '&#160;' ?></td>
438:                     <td class="tc3"><?php echo ($ban_data['ip'] != '') ? $ban_data['ip'] : '&#160;' ?></td>438:                     <td class="tc3"><?php echo ($ban_data['ip'] != '') ? pun_htmlspecialchars($ban_data['ip']) : '&#160;' ?></td>
439:                     <td class="tc4"><?php echo $expire ?></td>439:                     <td class="tc4"><?php echo $expire ?></td>
440:                     <td class="tc5"><?php echo ($ban_data['message'] != '') ? pun_htmlspecialchars($ban_data['message']) : '&#160;' ?></td>440:                     <td class="tc5"><?php echo ($ban_data['message'] != '') ? pun_htmlspecialchars($ban_data['message']) : '&#160;' ?></td>
441:                     <td class="tc6"><?php echo ($ban_data['ban_creator_username'] != '') ? '<a href="profile.php?id='.$ban_data['ban_creator'].'">'.pun_htmlspecialchars($ban_data['ban_creator_username']).'</a>' : $lang_admin_bans['Unknown'] ?></td>441:                     <td class="tc6"><?php echo ($ban_data['ban_creator_username'] != '') ? '<a href="profile.php?id='.$ban_data['ban_creator'].'">'.pun_htmlspecialchars($ban_data['ban_creator_username']).'</a>' : $lang_admin_bans['Unknown'] ?></td>


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';
 83:  83: 
 84: ?> 84: ?>
 85:                 <tr> 85:                 <tr>
 86:                     <td class="tcl"><a href="moderate.php?get_host=<?php echo $cur_ip['poster_ip'] ?>"><?php echo $cur_ip['poster_ip'] ?></a></td> 86:                     <td class="tcl"><a href="moderate.php?get_host=<?php echo pun_htmlspecialchars($cur_ip['poster_ip']) ?>"><?php echo pun_htmlspecialchars($cur_ip['poster_ip']) ?>"><?php echo $cur_ip['poster_ip'] ?></a></td>
 87:                     <td class="tc2"><?php echo format_time($cur_ip['last_used']) ?></td> 87:                     <td class="tc2"><?php echo format_time($cur_ip['last_used']) ?></td>
 88:                     <td class="tc3"><?php echo $cur_ip['used_times'] ?></td> 88:                     <td class="tc3"><?php echo $cur_ip['used_times'] ?></td>
 89:                     <td class="tcr"><a href="admin_users.php?show_users=<?php echo $cur_ip['poster_ip'] ?>"><?php echo $lang_admin_users['Results find more link'] ?></a></td> 89:                     <td class="tcr"><a href="admin_users.php?show_users=<?php echo pun_htmlspecialchars($cur_ip['poster_ip']) ?>"><?php echo $lang_admin_users['Results find more link'] ?></a></td>
 90:                 </tr> 90:                 </tr>
 91: <?php 91: <?php
 92:  92: 
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.12');
 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)
512: <title><?php echo $lang_update['Update'] ?></title>512: <title><?php echo $lang_update['Update'] ?></title>
513: <link rel="stylesheet" type="text/css" href="style/<?php echo $default_style ?>.css" />513: <link rel="stylesheet" type="text/css" href="style/<?php echo $default_style ?>.css" />
514: </head>514: </head>
515: <body onload="document.getElementById('install').req_db_pass.focus();document.getElementById('install').start.disabled=false;">515: <body onLoad="document.getElementById('install').req_db_pass.focus();document.getElementById('install').start.disabled=false;">
516: 516: 
517: <div id="pundb_update" class="pun">517: <div id="pundb_update" class="pun">
518: <div class="top-box"><div><!-- Top Corners --></div></div>518: <div class="top-box"><div><!-- Top Corners --></div></div>
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';
 48:  48: 
 49: if (isset($_POST['delete'])) 49: if (isset($_POST['delete']))
 50: { 50: {
 51:     if ($is_admmod) 51:     // Make sure they got here from the site
 52:         confirm_referrer('delete.php'); 52:     confirm_referrer('delete.php');
 53:  53: 
 54:     require PUN_ROOT.'include/search_idx.php'; 54:     require PUN_ROOT.'include/search_idx.php';
 55:  55: 


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';
 53:  53: 
 54: if (isset($_POST['form_sent'])) 54: if (isset($_POST['form_sent']))
 55: { 55: {
 56:     if ($is_admmod) 56:     // Make sure they got here from the site
 57:         confirm_referrer('edit.php'); 57:     confirm_referrer('edit.php');
 58:  58: 
 59:     // If it's a topic it must contain a subject 59:     // If it's a topic it must contain a subject
 60:     if ($can_edit_subject) 60:     if ($can_edit_subject)


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.12');
 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
  6:  * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher  6:  * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
  7:  */  7:  */
  8:   8: 
   9: include PUN_ROOT.'include/srand.php'; 
  9:  10: 
 10: // 11: //
 11: // Return current timestamp (with microseconds) as a float 12: // Return current timestamp (with microseconds) as a float
244:     $remote_addr = get_remote_address();245:     $remote_addr = get_remote_address();
245: 246: 
246:     // Fetch guest user247:     // Fetch guest user
247:     $result = $db->query('SELECT u.*, g.*, o.logged, o.last_post, o.last_search FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON u.group_id=g.g_id LEFT JOIN '.$db->prefix.'online AS o ON o.ident=\''.$remote_addr.'\' WHERE u.id=1') or error('Unable to fetch guest information', __FILE__, __LINE__, $db->error());248:     $result = $db->query('SELECT u.*, g.*, o.logged, o.last_post, o.last_search FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON u.group_id=g.g_id LEFT JOIN '.$db->prefix.'online AS o ON o.ident=\''.$db->escape($remote_addr).'\' WHERE u.id=1') or error('Unable to fetch guest information', __FILE__, __LINE__, $db->error());
248:     if (!$db->num_rows($result))249:     if (!$db->num_rows($result))
249:         exit('Unable to fetch guest information. Your database must contain both a guest user and a guest user group.');250:         exit('Unable to fetch guest information. Your database must contain both a guest user and a guest user group.');
250: 251: 
566: 567: 
567:     $page_title = array_reverse($page_title);568:     $page_title = array_reverse($page_title);
568: 569: 
569:     if ($p != null)570:     if (!is_null($p))
570:         $page_title[0] .= ' ('.sprintf($lang_common['Page'], forum_number_format($p)).')';571:         $page_title[0] .= ' ('.sprintf($lang_common['Page'], forum_number_format($p)).')';
571: 572: 
572:     $crumbs = implode($lang_common['Title separator'], $page_title);573:     $crumbs = implode($lang_common['Title separator'], $page_title);
619:     if (!$cookie_data)620:     if (!$cookie_data)
620:         return array('topics' => array(), 'forums' => array());621:         return array('topics' => array(), 'forums' => array());
621: 622: 
622:     if (strlen($cookie_data) > 4048)623:     if (strlen($cookie_data) > FORUM_MAX_COOKIE_SIZE)
623:         return array('topics' => array(), 'forums' => array());624:         return array('topics' => array(), 'forums' => array());
624: 625: 
625:     // Unserialize data from cookie626:     // Unserialize data from cookie
882:     {883:     {
883:         // Add a previous page link884:         // Add a previous page link
884:         if ($num_pages > 1 && $cur_page > 1)885:         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>';886:             $pages[] = '<a rel="prev" '.(empty($pages) ? ' class="item1"' : '').' href="'.$link.'&amp;p='.($cur_page - 1).'">'.$lang_common['Previous'].'</a>';
886: 887: 
887:         if ($cur_page > 3)888:         if ($cur_page > 3)
888:         {889:         {
913: 914: 
914:         // Add a next page link915:         // Add a next page link
915:         if ($num_pages > 1 && !$link_to_all && $cur_page < $num_pages)916:         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>';917:             $pages[] = '<a rel="next" '.(empty($pages) ? ' class="item1"' : '').' href="'.$link.'&amp;p='.($cur_page +1).'">'.$lang_common['Next'].'</a>';
917:     }918:     }
918: 919: 
919:     return implode(' ', $pages);920:     return implode(' ', $pages);
923: //924: //
924: // Display a message925: // Display a message
925: //926: //
926: function message($message, $no_back_link = false)927: function message($message, $no_back_link = false, $http_status = null)
927: {928: {
928:     global $db, $lang_common, $pun_config, $pun_start, $tpl_main, $pun_user;929:     global $db, $lang_common, $pun_config, $pun_start, $tpl_main, $pun_user;
929: 930: 
 931:     // Did we receive a custom header?
 932:     if(!is_null($http_status)) {
 933:         header('HTTP/1.1 ' . $http_status);
 934:     }
 935: 
930:     if (!defined('PUN_HEADER'))936:     if (!defined('PUN_HEADER'))
931:     {937:     {
932:         $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_common['Info']);938:         $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_common['Info']);
965:     $timestamp += $diff;971:     $timestamp += $diff;
966:     $now = time();972:     $now = time();
967: 973: 
968:     if($date_format == null)974:     if(is_null($date_format))
969:         $date_format = $forum_date_formats[$pun_user['date_format']];975:         $date_format = $forum_date_formats[$pun_user['date_format']];
970: 976: 
971:     if($time_format == null)977:     if(is_null($time_format))
972:         $time_format = $forum_time_formats[$pun_user['time_format']];978:         $time_format = $forum_time_formats[$pun_user['time_format']];
973: 979: 
974:     $date = gmdate($date_format, $timestamp);980:     $date = gmdate($date_format, $timestamp);
1008: //1014: //
1009: function random_key($len, $readable = false, $hash = false)1015: function random_key($len, $readable = false, $hash = false)
1010: {1016: {
1011:     $key = '';1017:     $key = secure_random_bytes($len); 
1012: 1018:     if ($hash)  
1013:     if ($hash)1019:         $key = substr(bin2hex($key), 0, $len);  
1014:         $key = substr(pun_hash(uniqid(rand(), true)), 0, $len);1020:     else if ($readable)  
1015:     else if ($readable)1021:         $key = substr(base64_encode($key), 0, $len);  
1016:     { 
1017:         $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 
1018:  
1019:         for ($i = 0; $i < $len; ++$i) 
1020:             $key .= substr($chars, (mt_rand() % strlen($chars)), 1); 
1021:     } 
1022:     else 
1023:     { 
1024:         for ($i = 0; $i < $len; ++$i) 
1025:             $key .= chr(mt_rand(33, 126)); 
1026:     } 
1027: 1022: 
1028:     return $key;1023:     return $key;
1029: }1024: }
1032: //1027: //
1033: // Make sure that HTTP_REFERER matches base_url/script1028: // Make sure that HTTP_REFERER matches base_url/script
1034: //1029: //
1035: function confirm_referrer($script, $error_msg = false)1030: function confirm_referrer($scripts, $error_msg = false)
1036: {1031: {
1037:     global $pun_config, $lang_common;1032:     global $pun_config, $lang_common;
1038: 1033: 
 1034:     if (!is_array($scripts))
 1035:         $scripts = array($scripts);
 1036: 
1039:     // There is no referrer1037:     // There is no referrer
1040:     if (empty($_SERVER['HTTP_REFERER']))1038:     if (empty($_SERVER['HTTP_REFERER']))
1041:         message($error_msg ? $error_msg : $lang_common['Bad referrer']);1039:         message($error_msg ? $error_msg : $lang_common['Bad referrer']);
1045:     if (strpos($referrer['host'], 'www.') === 0)1043:     if (strpos($referrer['host'], 'www.') === 0)
1046:         $referrer['host'] = substr($referrer['host'], 4);1044:         $referrer['host'] = substr($referrer['host'], 4);
1047: 1045: 
1048:     $valid = parse_url(strtolower(get_base_url().'/'.$script));1046:     $valid_paths = array();
1049:     // Remove www subdomain if it exists1047:     foreach ($scripts as $script)
1050:     if (strpos($valid['host'], 'www.') === 0)1048:     {
1051:         $valid['host'] = substr($valid['host'], 4);1049:         $valid = parse_url(strtolower(get_base_url().'/'.$script));
 1050:         // Remove www subdomain if it exists
 1051:         if (strpos($valid['host'], 'www.') === 0)
 1052:             $valid['host'] = substr($valid['host'], 4);
 1053: 
 1054:         $valid_host = $valid['host'];
 1055:         $valid_paths[] = $valid['path'];
 1056:     }
1052: 1057: 
1053:     // Check the host and path match. Ignore the scheme, port, etc.1058:     // Check the host and path match. Ignore the scheme, port, etc.
1054:     if ($referrer['host'] != $valid['host'] || $referrer['path'] != $valid['path'])1059:     if ($referrer['host'] != $valid_host || !in_array($referrer['path'], $valid_paths, true))
1055:         message($error_msg ? $error_msg : $lang_common['Bad referrer']);1060:         message($error_msg ? $error_msg : $lang_common['Bad referrer']);
1056: }1061: }
1057: 1062: 
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: 


/dev/null b/include/srand.php
   1: <?php
   2: 
   3: /*
   4:  * Author:
   5:  * George Argyros <argyros.george@gmail.com>
   6:  *
   7:  * Copyright (c) 2012, George Argyros
   8:  * All rights reserved.
   9:  *
  10:  * Redistribution and use in source and binary forms, with or without
  11:  * modification, are permitted provided that the following conditions are met:
  12:  *    * Redistributions of source code must retain the above copyright
  13:  *      notice, this list of conditions and the following disclaimer.
  14:  *    * Redistributions in binary form must reproduce the above copyright
  15:  *      notice, this list of conditions and the following disclaimer in the
  16:  *      documentation and/or other materials provided with the distribution.
  17:  *    * Neither the name of the <organization> nor the
  18:  *      names of its contributors may be used to endorse or promote products
  19:  *      derived from this software without specific prior written permission.
  20:  *
  21:  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  22:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  23:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  24:  * DISCLAIMED. IN NO EVENT SHALL GEORGE ARGYROS BE LIABLE FOR ANY
  25:  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  26:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  27:  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  28:  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  29:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  30:  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31:  *
  32:  *
  33:  *
  34:  * The function is providing, at least at the systems tested :), 
  35:  * $len bytes of entropy under any PHP installation or operating system.
  36:  * The execution time should be at most 10-20 ms in any system.
  37:  */
  38: function secure_random_bytes($len = 10)
  39: {  
  40:  
  41:    /*
  42:     * Our primary choice for a cryptographic strong randomness function is
  43:     * openssl_random_pseudo_bytes. 
  44:     */
  45:    $SSLstr = '4'; // http://xkcd.com/221/
  46:    if (function_exists('openssl_random_pseudo_bytes') && 
  47:        (version_compare(PHP_VERSION, '5.3.4') >= 0 || 
  48:     substr(PHP_OS, 0, 3) !== 'WIN'))
  49:    {
  50:       $SSLstr = openssl_random_pseudo_bytes($len, $strong);
  51:       if ($strong)
  52:          return $SSLstr;
  53:    }
  54: 
  55:    /*
  56:     * If mcrypt extension is available then we use it to gather entropy from 
  57:     * the operating system's PRNG. This is better than reading /dev/urandom 
  58:     * directly since it avoids reading larger blocks of data than needed. 
  59:     * Older versions of mcrypt_create_iv may be broken or take too much time 
  60:     * to finish so we only use this function with PHP 5.3 and above.
  61:     */
  62:    if (function_exists('mcrypt_create_iv') && 
  63:       (version_compare(PHP_VERSION, '5.3.0') >= 0 || 
  64:        substr(PHP_OS, 0, 3) !== 'WIN')) 
  65:    {
  66:       $str = mcrypt_create_iv($len, MCRYPT_DEV_URANDOM);
  67:       if ($str !== false)
  68:          return $str;    
  69:    }
  70: 
  71: 
  72:    /*
  73:     * No build-in crypto randomness function found. We collect any entropy 
  74:     * available in the PHP core PRNGs along with some filesystem info and memory
  75:     * stats. To make this data cryptographically strong we add data either from 
  76:     * /dev/urandom or if its unavailable, we gather entropy by measuring the 
  77:     * time needed to compute a number of SHA-1 hashes. 
  78:     */
  79:    $str = '';
  80:    $bits_per_round = 2; // bits of entropy collected in each clock drift round
  81:    $msec_per_round = 400; // expected running time of each round in microseconds
  82:    $hash_len = 20; // SHA-1 Hash length
  83:    $total = $len; // total bytes of entropy to collect
  84: 
  85:    $handle = @fopen('/dev/urandom', 'rb');   
  86:    if ($handle && function_exists('stream_set_read_buffer'))
  87:       @stream_set_read_buffer($handle, 0);
  88: 
  89:    do
  90:    {
  91:       $bytes = ($total > $hash_len)? $hash_len : $total;
  92:       $total -= $bytes;
  93: 
  94:       //collect any entropy available from the PHP system and filesystem
  95:       $entropy = rand() . uniqid(mt_rand(), true) . $SSLstr;
  96:       $entropy .= implode('', @fstat(@fopen( __FILE__, 'r')));
  97:       $entropy .= memory_get_usage();
  98:       if ($handle) 
  99:       {
 100:          $entropy .= @fread($handle, $bytes);
 101:       }
 102:       else
 103:       {                   
 104:          // Measure the time that the operations will take on average
 105:          for ($i = 0; $i < 3; $i ++) 
 106:          {
 107:             $c1 = get_microtime();
 108:             $var = sha1(mt_rand());
 109:             for ($j = 0; $j < 50; $j++)
 110:             {
 111:                $var = sha1($var);
 112:             }
 113:             $c2 = get_microtime();
 114:             $entropy .= $c1 . $c2;
 115:          }
 116: 
 117:          // Based on the above measurement determine the total rounds
 118:          // in order to bound the total running time.    
 119:          $rounds = (int)($msec_per_round*50 / (int)(($c2-$c1)*1000000));
 120: 
 121:          // Take the additional measurements. On average we can expect
 122:          // at least $bits_per_round bits of entropy from each measurement.
 123:          $iter = $bytes*(int)(ceil(8 / $bits_per_round));
 124:          for ($i = 0; $i < $iter; $i ++)
 125:          {
 126:             $c1 = time();
 127:             $var = sha1(mt_rand());
 128:             for ($j = 0; $j < $rounds; $j++)
 129:             {
 130:                $var = sha1($var);
 131:             }
 132:             $c2 = get_microtime();
 133:             $entropy .= $c1 . $c2;
 134:          }
 135:             
 136:       } 
 137:       // We assume sha1 is a deterministic extractor for the $entropy variable.
 138:       $str .= sha1($entropy, true);
 139:    } while ($len > strlen($str));
 140:    
 141:    if ($handle) 
 142:       @fclose($handle);
 143:    
 144:    return substr($str, 0, $len);
 145: }
  0: 146: 


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.12');
 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>
1573:     $db->query('INSERT INTO '.$db_prefix.'users (group_id, username, password, email) VALUES(3, \''.$db->escape($lang_install['Guest']).'\', \''.$db->escape($lang_install['Guest']).'\', \''.$db->escape($lang_install['Guest']).'\')')1573:     $db->query('INSERT INTO '.$db_prefix.'users (group_id, username, password, email) VALUES(3, \''.$db->escape($lang_install['Guest']).'\', \''.$db->escape($lang_install['Guest']).'\', \''.$db->escape($lang_install['Guest']).'\')')
1574:         or error('Unable to add guest user. Please check your configuration and try again', __FILE__, __LINE__, $db->error());1574:         or error('Unable to add guest user. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
1575: 1575: 
1576:     $db->query('INSERT INTO '.$db_prefix.'users (group_id, username, password, email, language, style, num_posts, last_post, registered, registration_ip, last_visit) VALUES(1, \''.$db->escape($username).'\', \''.pun_hash($password1).'\', \''.$email.'\', \''.$db->escape($default_lang).'\', \''.$db->escape($default_style).'\', 1, '.$now.', '.$now.', \''.get_remote_address().'\', '.$now.')')1576:     $db->query('INSERT INTO '.$db_prefix.'users (group_id, username, password, email, language, style, num_posts, last_post, registered, registration_ip, last_visit) VALUES(1, \''.$db->escape($username).'\', \''.pun_hash($password1).'\', \''.$email.'\', \''.$db->escape($default_lang).'\', \''.$db->escape($default_style).'\', 1, '.$now.', '.$now.', \''.$db->escape(get_remote_address()).'\', '.$now.')')
1577:         or error('Unable to add administrator user. Please check your configuration and try again', __FILE__, __LINE__, $db->error());1577:         or error('Unable to add administrator user. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
1578: 1578: 
1579:     // Enable/disable avatars depending on file_uploads setting in PHP configuration1579:     // Enable/disable avatars depending on file_uploads setting in PHP configuration
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: 
1686:     $db->query('INSERT INTO '.$db_prefix.'topics (poster, subject, posted, first_post_id, last_post, last_post_id, last_poster, forum_id) VALUES(\''.$db->escape($username).'\', \''.$db->escape($subject).'\', '.$now.', 1, '.$now.', 1, \''.$db->escape($username).'\', 1)')1686:     $db->query('INSERT INTO '.$db_prefix.'topics (poster, subject, posted, first_post_id, last_post, last_post_id, last_poster, forum_id) VALUES(\''.$db->escape($username).'\', \''.$db->escape($subject).'\', '.$now.', 1, '.$now.', 1, \''.$db->escape($username).'\', 1)')
1687:         or error('Unable to insert into table '.$db_prefix.'topics. Please check your configuration and try again', __FILE__, __LINE__, $db->error());1687:         or error('Unable to insert into table '.$db_prefix.'topics. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
1688: 1688: 
1689:     $db->query('INSERT INTO '.$db_prefix.'posts (poster, poster_id, poster_ip, message, posted, topic_id) VALUES(\''.$db->escape($username).'\', 2, \''.get_remote_address().'\', \''.$db->escape($message).'\', '.$now.', 1)')1689:     $db->query('INSERT INTO '.$db_prefix.'posts (poster, poster_id, poster_ip, message, posted, topic_id) VALUES(\''.$db->escape($username).'\', 2, \''.$db->escape(get_remote_address()).'\', \''.$db->escape($message).'\', '.$now.', 1)')
1690:         or error('Unable to insert into table '.$db_prefix.'posts. Please check your configuration and try again', __FILE__, __LINE__, $db->error());1690:         or error('Unable to insert into table '.$db_prefix.'posts. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
1691: 1691: 
1692:     // Index the test post so searching for it works1692:     // Index the test post so searching for it works


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)
 99:  99: 
100:     if (isset($_POST['form_sent']))100:     if (isset($_POST['form_sent']))
101:     {101:     {
 102:         confirm_referrer('misc.php');
 103: 
102:         // Clean up message and subject from POST104:         // Clean up message and subject from POST
103:         $subject = pun_trim($_POST['req_subject']);105:         $subject = pun_trim($_POST['req_subject']);
104:         $message = pun_trim($_POST['req_message']);106:         $message = pun_trim($_POST['req_message']);
145:         if (strpos($referrer['host'], 'www.') === 0)147:         if (strpos($referrer['host'], 'www.') === 0)
146:             $referrer['host'] = substr($referrer['host'], 4);148:             $referrer['host'] = substr($referrer['host'], 4);
147: 149: 
 150:         // Make sure the path component exists
 151:         if (!isset($referrer['path']))
 152:             $referrer['path'] = '';
 153: 
148:         $valid = parse_url(get_base_url());154:         $valid = parse_url(get_base_url());
149:         // Remove www subdomain if it exists155:         // Remove www subdomain if it exists
150:         if (strpos($valid['host'], 'www.') === 0)156:         if (strpos($valid['host'], 'www.') === 0)
151:             $valid['host'] = substr($valid['host'], 4);157:             $valid['host'] = substr($valid['host'], 4);
152: 158: 
 159:         // Make sure the path component exists
 160:         if (!isset($valid['path']))
 161:             $valid['path'] = '';
 162: 
153:         if ($referrer['host'] == $valid['host'] && preg_match('%^'.preg_quote($valid['path'], '%').'/(.*?)\.php%i', $referrer['path']))163:         if ($referrer['host'] == $valid['host'] && preg_match('%^'.preg_quote($valid['path'], '%').'/(.*?)\.php%i', $referrer['path']))
154:             $redirect_url = $_SERVER['HTTP_REFERER'];164:             $redirect_url = $_SERVER['HTTP_REFERER'];
155:     }165:     }
203: 213: 
204:     if (isset($_POST['form_sent']))214:     if (isset($_POST['form_sent']))
205:     {215:     {
 216:         // Make sure they got here from the site
 217:         confirm_referrer('misc.php');
 218:     
206:         // Clean up reason from POST219:         // Clean up reason from POST
207:         $reason = pun_linebreaks(pun_trim($_POST['req_reason']));220:         $reason = pun_linebreaks(pun_trim($_POST['req_reason']));
208:         if ($reason == '')221:         if ($reason == '')


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';
 63:     if (!isset($_POST['preview']) && $pun_user['last_post'] != '' && (time() - $pun_user['last_post']) < $pun_user['g_post_flood']) 63:     if (!isset($_POST['preview']) && $pun_user['last_post'] != '' && (time() - $pun_user['last_post']) < $pun_user['g_post_flood'])
 64:         $errors[] = $lang_post['Flood start'].' '.$pun_user['g_post_flood'].' '.$lang_post['flood end']; 64:         $errors[] = $lang_post['Flood start'].' '.$pun_user['g_post_flood'].' '.$lang_post['flood end'];
 65:  65: 
  66:     // Make sure they got here from the site
  67:     confirm_referrer(array('post.php', 'viewtopic.php'));
  68: 
 66:     // If it's a new topic 69:     // If it's a new topic
 67:     if ($fid) 70:     if ($fid)
 68:     { 71:     {
 91:     else 94:     else
 92:     { 95:     {
 93:         $username = pun_trim($_POST['req_username']); 96:         $username = pun_trim($_POST['req_username']);
 94:         $email = strtolower(trim(($pun_config['p_force_guest_email'] == '1') ? $_POST['req_email'] : $_POST['email'])); 97:         $email = strtolower(pun_trim(($pun_config['p_force_guest_email'] == '1') ? $_POST['req_email'] : $_POST['email']));
 95:         $banned_email = false; 98:         $banned_email = false;
 96:  99: 
 97:         // Load the register.php/prof_reg.php language files100:         // Load the register.php/prof_reg.php language files
171:                 $new_tid = $tid;174:                 $new_tid = $tid;
172: 175: 
173:                 // Insert the new post176:                 // Insert the new post
174:                 $db->query('INSERT INTO '.$db->prefix.'posts (poster, poster_id, poster_ip, message, hide_smilies, posted, topic_id) VALUES(\''.$db->escape($username).'\', '.$pun_user['id'].', \''.get_remote_address().'\', \''.$db->escape($message).'\', '.$hide_smilies.', '.$now.', '.$tid.')') or error('Unable to create post', __FILE__, __LINE__, $db->error());177:                 $db->query('INSERT INTO '.$db->prefix.'posts (poster, poster_id, poster_ip, message, hide_smilies, posted, topic_id) VALUES(\''.$db->escape($username).'\', '.$pun_user['id'].', \''.$db->escape(get_remote_address()).'\', \''.$db->escape($message).'\', '.$hide_smilies.', '.$now.', '.$tid.')') or error('Unable to create post', __FILE__, __LINE__, $db->error());
175:                 $new_pid = $db->insert_id();178:                 $new_pid = $db->insert_id();
176: 179: 
177:                 // To subscribe or not to subscribe, that ...180:                 // To subscribe or not to subscribe, that ...
187:             {190:             {
188:                 // It's a guest. Insert the new post191:                 // It's a guest. Insert the new post
189:                 $email_sql = ($pun_config['p_force_guest_email'] == '1' || $email != '') ? '\''.$db->escape($email).'\'' : 'NULL';192:                 $email_sql = ($pun_config['p_force_guest_email'] == '1' || $email != '') ? '\''.$db->escape($email).'\'' : 'NULL';
190:                 $db->query('INSERT INTO '.$db->prefix.'posts (poster, poster_ip, poster_email, message, hide_smilies, posted, topic_id) VALUES(\''.$db->escape($username).'\', \''.get_remote_address().'\', '.$email_sql.', \''.$db->escape($message).'\', '.$hide_smilies.', '.$now.', '.$tid.')') or error('Unable to create post', __FILE__, __LINE__, $db->error());193:                 $db->query('INSERT INTO '.$db->prefix.'posts (poster, poster_ip, poster_email, message, hide_smilies, posted, topic_id) VALUES(\''.$db->escape($username).'\', \''.$db->escape(get_remote_address()).'\', '.$email_sql.', \''.$db->escape($message).'\', '.$hide_smilies.', '.$now.', '.$tid.')') or error('Unable to create post', __FILE__, __LINE__, $db->error());
191:                 $new_pid = $db->insert_id();194:                 $new_pid = $db->insert_id();
192:             }195:             }
193: 196: 
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 topic197:             // 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());198:             $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: 199: 
201:             update_search_index('post', $new_pid, $message);200:             update_search_index('post', $new_pid, $message);
202: 201: 
297:                     $db->query('INSERT INTO '.$db->prefix.'topic_subscriptions (user_id, topic_id) VALUES('.$pun_user['id'].' ,'.$new_tid.')') or error('Unable to add subscription', __FILE__, __LINE__, $db->error());296:                     $db->query('INSERT INTO '.$db->prefix.'topic_subscriptions (user_id, topic_id) VALUES('.$pun_user['id'].' ,'.$new_tid.')') or error('Unable to add subscription', __FILE__, __LINE__, $db->error());
298: 297: 
299:                 // Create the post ("topic post")298:                 // Create the post ("topic post")
300:                 $db->query('INSERT INTO '.$db->prefix.'posts (poster, poster_id, poster_ip, message, hide_smilies, posted, topic_id) VALUES(\''.$db->escape($username).'\', '.$pun_user['id'].', \''.get_remote_address().'\', \''.$db->escape($message).'\', '.$hide_smilies.', '.$now.', '.$new_tid.')') or error('Unable to create post', __FILE__, __LINE__, $db->error());299:                 $db->query('INSERT INTO '.$db->prefix.'posts (poster, poster_id, poster_ip, message, hide_smilies, posted, topic_id) VALUES(\''.$db->escape($username).'\', '.$pun_user['id'].', \''.$db->escape(get_remote_address()).'\', \''.$db->escape($message).'\', '.$hide_smilies.', '.$now.', '.$new_tid.')') or error('Unable to create post', __FILE__, __LINE__, $db->error());
301:             }300:             }
302:             else301:             else
303:             {302:             {
304:                 // Create the post ("topic post")303:                 // Create the post ("topic post")
305:                 $email_sql = ($pun_config['p_force_guest_email'] == '1' || $email != '') ? '\''.$db->escape($email).'\'' : 'NULL';304:                 $email_sql = ($pun_config['p_force_guest_email'] == '1' || $email != '') ? '\''.$db->escape($email).'\'' : 'NULL';
306:                 $db->query('INSERT INTO '.$db->prefix.'posts (poster, poster_ip, poster_email, message, hide_smilies, posted, topic_id) VALUES(\''.$db->escape($username).'\', \''.get_remote_address().'\', '.$email_sql.', \''.$db->escape($message).'\', '.$hide_smilies.', '.$now.', '.$new_tid.')') or error('Unable to create post', __FILE__, __LINE__, $db->error());305:                 $db->query('INSERT INTO '.$db->prefix.'posts (poster, poster_ip, poster_email, message, hide_smilies, posted, topic_id) VALUES(\''.$db->escape($username).'\', \''.$db->escape(get_remote_address()).'\', '.$email_sql.', \''.$db->escape($message).'\', '.$hide_smilies.', '.$now.', '.$new_tid.')') or error('Unable to create post', __FILE__, __LINE__, $db->error());
307:             }306:             }
308:             $new_pid = $db->insert_id();307:             $new_pid = $db->insert_id();
309: 308: 
443:     {442:     {
444:         $qid = intval($_GET['qid']);443:         $qid = intval($_GET['qid']);
445:         if ($qid < 1)444:         if ($qid < 1)
446:             message($lang_common['Bad request']);445:             message($lang_common['Bad request'], false, '404 Not Found');
447: 446: 
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());447:         $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))448:         if (!$db->num_rows($result))
450:             message($lang_common['Bad request']);449:             message($lang_common['Bad request'], false, '404 Not Found');
451: 450: 
452:         list($q_poster, $q_message) = $db->fetch_row($result);451:         list($q_poster, $q_message) = $db->fetch_row($result);
453: 452: 


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: 
 82:     if (isset($_POST['form_sent'])) 82:     if (isset($_POST['form_sent']))
 83:     { 83:     {
 84:         if ($pun_user['is_admmod']) 84:         // Make sure they got here from the site
 85:             confirm_referrer('profile.php'); 85:         confirm_referrer('profile.php');
 86:  86: 
 87:         $old_password = isset($_POST['req_old_password']) ? pun_trim($_POST['req_old_password']) : ''; 87:         $old_password = isset($_POST['req_old_password']) ? pun_trim($_POST['req_old_password']) : '';
 88:         $new_password1 = pun_trim($_POST['req_new_password1']); 88:         $new_password1 = pun_trim($_POST['req_new_password1']);
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: 
196:         if (pun_hash($_POST['req_password']) !== $pun_user['password'])196:         if (pun_hash($_POST['req_password']) !== $pun_user['password'])
197:             message($lang_profile['Wrong pass']);197:             message($lang_profile['Wrong pass']);
198: 198: 
 199:         // Make sure they got here from the site
 200:         confirm_referrer('profile.php');
 201: 
199:         require PUN_ROOT.'include/email.php';202:         require PUN_ROOT.'include/email.php';
200: 203: 
201:         // Validate the email address204:         // Validate the email address
202:         $new_email = strtolower(trim($_POST['req_new_email']));205:         $new_email = strtolower(pun_trim($_POST['req_new_email']));
203:         if (!is_valid_email($new_email))206:         if (!is_valid_email($new_email))
204:             message($lang_common['Invalid email']);207:             message($lang_common['Invalid email']);
205: 208: 
316:         message($lang_profile['Avatars disabled']);319:         message($lang_profile['Avatars disabled']);
317: 320: 
318:     if ($pun_user['id'] != $id && !$pun_user['is_admmod'])321:     if ($pun_user['id'] != $id && !$pun_user['is_admmod'])
319:         message($lang_common['No permission']);322:         message($lang_common['No permission'], false, '403 Forbidden');
320: 323: 
321:     if (isset($_POST['form_sent']))324:     if (isset($_POST['form_sent']))
322:     {325:     {
323:         if (!isset($_FILES['req_file']))326:         if (!isset($_FILES['req_file']))
324:             message($lang_profile['No file']);327:             message($lang_profile['No file']);
325: 328: 
 329:         // Make sure they got here from the site
 330:         confirm_referrer('profile.php');
 331: 
326:         $uploaded_file = $_FILES['req_file'];332:         $uploaded_file = $_FILES['req_file'];
327: 333: 
328:         // Make sure the upload went smooth334:         // Make sure the upload went smooth
439: else if ($action == 'delete_avatar')445: else if ($action == 'delete_avatar')
440: {446: {
441:     if ($pun_user['id'] != $id && !$pun_user['is_admmod'])447:     if ($pun_user['id'] != $id && !$pun_user['is_admmod'])
442:         message($lang_common['No permission']);448:         message($lang_common['No permission'], false, '403 Forbidden');
443: 449: 
444:     confirm_referrer('profile.php');450:     confirm_referrer('profile.php');
445: 451: 
452: else if (isset($_POST['update_group_membership']))458: else if (isset($_POST['update_group_membership']))
453: {459: {
454:     if ($pun_user['g_id'] > PUN_ADMIN)460:     if ($pun_user['g_id'] > PUN_ADMIN)
455:         message($lang_common['No permission']);461:         message($lang_common['No permission'], false, '403 Forbidden');
456: 462: 
457:     confirm_referrer('profile.php');463:     confirm_referrer('profile.php');
458: 464: 
496: else if (isset($_POST['update_forums']))502: else if (isset($_POST['update_forums']))
497: {503: {
498:     if ($pun_user['g_id'] > PUN_ADMIN)504:     if ($pun_user['g_id'] > PUN_ADMIN)
499:         message($lang_common['No permission']);505:         message($lang_common['No permission'], false, '403 Forbidden');
500: 506: 
501:     confirm_referrer('profile.php');507:     confirm_referrer('profile.php');
502: 508: 
537: else if (isset($_POST['ban']))543: else if (isset($_POST['ban']))
538: {544: {
539:     if ($pun_user['g_id'] != PUN_ADMIN && ($pun_user['g_moderator'] != '1' || $pun_user['g_mod_ban_users'] == '0'))545:     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']);546:         message($lang_common['No permission'], false, '403 Forbidden');
541: 547: 
542:     // Get the username of the user we are banning548:     // 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());549:     $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']))564: else if (isset($_POST['delete_user']) || isset($_POST['delete_user_comply']))
559: {565: {
560:     if ($pun_user['g_id'] > PUN_ADMIN)566:     if ($pun_user['g_id'] > PUN_ADMIN)
561:         message($lang_common['No permission']);567:         message($lang_common['No permission'], false, '403 Forbidden');
562: 568: 
563:     confirm_referrer('profile.php');569:     confirm_referrer('profile.php');
564: 570: 
679:     // Fetch the user group of the user we are editing685:     // 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());686:     $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))687:     if (!$db->num_rows($result))
682:         message($lang_common['Bad request']);688:         message($lang_common['Bad request'], false, '404 Not Found');
683: 689: 
684:     list($old_username, $group_id, $is_moderator) = $db->fetch_row($result);690:     list($old_username, $group_id, $is_moderator) = $db->fetch_row($result);
685: 691: 
689:         ($pun_user['g_mod_edit_users'] == '0' ||                                                    // mods aren't allowed to edit users695:         ($pun_user['g_mod_edit_users'] == '0' ||                                                    // mods aren't allowed to edit users
690:         $group_id == PUN_ADMIN ||                                                                    // or the user is an admin696:         $group_id == PUN_ADMIN ||                                                                    // or the user is an admin
691:         $is_moderator))))                                                                            // or the user is another mod697:         $is_moderator))))                                                                            // or the user is another mod
692:         message($lang_common['No permission']);698:         message($lang_common['No permission'], false, '403 Forbidden');
693: 699: 
694:     if ($pun_user['is_admmod'])700:     // Make sure they got here from the site
695:         confirm_referrer('profile.php');701:     confirm_referrer('profile.php');
696: 702: 
697:     $username_updated = false;703:     $username_updated = false;
698: 704: 
714:                 $languages = forum_list_langs();720:                 $languages = forum_list_langs();
715:                 $form['language'] = pun_trim($_POST['form']['language']);721:                 $form['language'] = pun_trim($_POST['form']['language']);
716:                 if (!in_array($form['language'], $languages))722:                 if (!in_array($form['language'], $languages))
717:                     message($lang_common['Bad request']);723:                     message($lang_common['Bad request'], false, '404 Not Found');
718:             }724:             }
719: 725: 
720:             if ($pun_user['is_admmod'])726:             if ($pun_user['is_admmod'])
750:                 require PUN_ROOT.'include/email.php';756:                 require PUN_ROOT.'include/email.php';
751: 757: 
752:                 // Validate the email address758:                 // Validate the email address
753:                 $form['email'] = strtolower(trim($_POST['req_email']));759:                 $form['email'] = strtolower(pun_trim($_POST['req_email']));
754:                 if (!is_valid_email($form['email']))760:                 if (!is_valid_email($form['email']))
755:                     message($lang_common['Invalid email']);761:                     message($lang_common['Invalid email']);
756:             }762:             }
884:                 $styles = forum_list_styles();890:                 $styles = forum_list_styles();
885:                 $form['style'] = pun_trim($_POST['form']['style']);891:                 $form['style'] = pun_trim($_POST['form']['style']);
886:                 if (!in_array($form['style'], $styles))892:                 if (!in_array($form['style'], $styles))
887:                     message($lang_common['Bad request']);893:                     message($lang_common['Bad request'], false, '404 Not Found');
888:             }894:             }
889: 895: 
890:             break;896:             break;
927:     // If we changed the username we have to update some stuff933:     // If we changed the username we have to update some stuff
928:     if ($username_updated)934:     if ($username_updated)
929:     {935:     {
 936:         $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());
 937:         // If any bans were updated, we will need to know because the cache will need to be regenerated.
 938:         if ($db->affected_rows() > 0)
 939:             $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());940:         $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());941:         $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());942:         $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';975:             require PUN_ROOT.'include/cache.php';
966: 976: 
967:         generate_users_info_cache();977:         generate_users_info_cache();
 978: 
 979:         // Check if the bans table was updated and regenerate the bans cache when needed
 980:         if (isset($bans_updated))
 981:             generate_bans_cache();
968:     }982:     }
969: 983: 
970:     redirect('profile.php?section='.$section.'&amp;id='.$id, $lang_profile['Profile redirect']);984:     redirect('profile.php?section='.$section.'&amp;id='.$id, $lang_profile['Profile redirect']);
973: 987: 
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());988: $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))989: if (!$db->num_rows($result))
976:     message($lang_common['Bad request']);990:     message($lang_common['Bad request'], false, '404 Not Found');
977: 991: 
978: $user = $db->fetch_assoc($result);992: $user = $db->fetch_assoc($result);
979: 993: 
1666:     else if ($section == 'admin')1680:     else if ($section == 'admin')
1667:     {1681:     {
1668:         if (!$pun_user['is_admmod'] || ($pun_user['g_moderator'] == '1' && $pun_user['g_mod_ban_users'] == '0'))1682:         if (!$pun_user['is_admmod'] || ($pun_user['g_moderator'] == '1' && $pun_user['g_mod_ban_users'] == '0'))
1669:             message($lang_common['Bad request']);1683:             message($lang_common['Bad request'], false, '403 Forbidden');
1670: 1684: 
1671:         $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_common['Profile'], $lang_profile['Section admin']);1685:         $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_common['Profile'], $lang_profile['Section admin']);
1672:         define('PUN_ACTIVE_PAGE', 'profile');1686:         define('PUN_ACTIVE_PAGE', 'profile');
1763:                         if ($cur_category != 0)1777:                         if ($cur_category != 0)
1764:                             echo "\n\t\t\t\t\t\t\t".'</div>'."\n";1778:                             echo "\n\t\t\t\t\t\t\t".'</div>'."\n";
1765: 1779: 
1766:                         echo "\t\t\t\t\t\t\t".'<div class="conl">'."\n\t\t\t\t\t\t\t\t".'<p><strong>'.$cur_forum['cat_name'].'</strong></p>'."\n\t\t\t\t\t\t\t\t".'<div class="rbox">';1780:                         echo "\t\t\t\t\t\t\t".'<div class="conl">'."\n\t\t\t\t\t\t\t\t".'<p><strong>'.pun_htmlspecialchars($cur_forum['cat_name']).'</strong></p>'."\n\t\t\t\t\t\t\t\t".'<div class="rbox">';
1767:                         $cur_category = $cur_forum['cid'];1781:                         $cur_category = $cur_forum['cid'];
1768:                     }1782:                     }
1769: 1783: 


a/register.php b/register.php
 66: if (isset($_POST['form_sent'])) 66: if (isset($_POST['form_sent']))
 67: { 67: {
 68:     // Check that someone from this IP didn't register a user within the last hour (DoS prevention) 68:     // Check that someone from this IP didn't register a user within the last hour (DoS prevention)
 69:     $result = $db->query('SELECT 1 FROM '.$db->prefix.'users WHERE registration_ip=\''.get_remote_address().'\' AND registered>'.(time() - 3600)) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); 69:     $result = $db->query('SELECT 1 FROM '.$db->prefix.'users WHERE registration_ip=\''.$db->escape(get_remote_address()).'\' AND registered>'.(time() - 3600)) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
 70:  70: 
 71:     if ($db->num_rows($result)) 71:     if ($db->num_rows($result))
 72:         message($lang_register['Registration flood']); 72:         message($lang_register['Registration flood']);
 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;
156:         $password_hash = pun_hash($password1);156:         $password_hash = pun_hash($password1);
157: 157: 
158:         // Add the user158:         // Add the user
159:         $db->query('INSERT INTO '.$db->prefix.'users (username, group_id, password, email, email_setting, timezone, dst, language, style, registered, registration_ip, last_visit) VALUES(\''.$db->escape($username).'\', '.$intial_group_id.', \''.$password_hash.'\', \''.$db->escape($email1).'\', '.$email_setting.', '.$timezone.' , '.$dst.', \''.$db->escape($language).'\', \''.$pun_config['o_default_style'].'\', '.$now.', \''.get_remote_address().'\', '.$now.')') or error('Unable to create user', __FILE__, __LINE__, $db->error());159:         $db->query('INSERT INTO '.$db->prefix.'users (username, group_id, password, email, email_setting, timezone, dst, language, style, registered, registration_ip, last_visit) VALUES(\''.$db->escape($username).'\', '.$intial_group_id.', \''.$password_hash.'\', \''.$db->escape($email1).'\', '.$email_setting.', '.$timezone.' , '.$dst.', \''.$db->escape($language).'\', \''.$pun_config['o_default_style'].'\', '.$now.', \''.$db->escape(get_remote_address()).'\', '.$now.')') or error('Unable to create user', __FILE__, __LINE__, $db->error());
160:         $new_uid = $db->insert_id();160:         $new_uid = $db->insert_id();
161: 161: 
162:         // If the mailing list isn't empty, we may need to send out some alerts162:         // If the mailing list isn't empty, we may need to send out some alerts


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: 
276: 276: 
277:         if ($pun_user['is_admmod'])277:         if ($pun_user['is_admmod'])
278:         {278:         {
279:             $user_info[] = '<dd><span><a href="moderate.php?get_host='.$cur_post['id'].'" title="'.$cur_post['poster_ip'].'">'.$lang_topic['IP address logged'].'</a></span></dd>';279:             $user_info[] = '<dd><span><a href="moderate.php?get_host='.$cur_post['id'].'" title="'.pun_htmlspecialchars($cur_post['poster_ip']).'">'.$lang_topic['IP address logged'].'</a></span></dd>';
280: 280: 
281:             if ($cur_post['admin_note'] != '')281:             if ($cur_post['admin_note'] != '')
282:                 $user_info[] = '<dd><span>'.$lang_topic['Note'].' <strong>'.pun_htmlspecialchars($cur_post['admin_note']).'</strong></span></dd>';282:                 $user_info[] = '<dd><span>'.$lang_topic['Note'].' <strong>'.pun_htmlspecialchars($cur_post['admin_note']).'</strong></span></dd>';
289:         $user_title = get_title($cur_post);289:         $user_title = get_title($cur_post);
290: 290: 
291:         if ($pun_user['is_admmod'])291:         if ($pun_user['is_admmod'])
292:             $user_info[] = '<dd><span><a href="moderate.php?get_host='.$cur_post['id'].'" title="'.$cur_post['poster_ip'].'">'.$lang_topic['IP address logged'].'</a></span></dd>';292:         $user_info[] = '<dd><span><a href="moderate.php?get_host='.$cur_post['id'].'" title="'.pun_htmlspecialchars($cur_post['poster_ip']).'">'.$lang_topic['IP address logged'].'</a></span></dd>';
293: 293: 
294:         if ($pun_config['o_show_user_info'] == '1' && $cur_post['poster_email'] != '' && !$pun_user['is_guest'] && $pun_user['g_send_email'] == '1')294:         if ($pun_config['o_show_user_info'] == '1' && $cur_post['poster_email'] != '' && !$pun_user['is_guest'] && $pun_user['g_send_email'] == '1')
295:             $user_contacts[] = '<span class="email"><a href="mailto:'.$cur_post['poster_email'].'">'.$lang_common['Email'].'</a></span>';295:             $user_contacts[] = '<span class="email"><a href="mailto:'.$cur_post['poster_email'].'">'.$lang_common['Email'].'</a></span>';


hdiff - version: 2.1.0 (modified)