fluxbb-1.2.20 to fluxbb-1.2.23 Legend
Lines removed 
Lines changed
 Lines added

a/extras/12_to_1220_update.php /dev/null


/dev/null b/extras/12_to_1223_update.php
   1: <?php
   2: /***********************************************************************
   3: 
   4:   Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)
   5: 
   6:   This file is part of PunBB.
   7: 
   8:   PunBB is free software; you can redistribute it and/or modify it
   9:   under the terms of the GNU General Public License as published
  10:   by the Free Software Foundation; either version 2 of the License,
  11:   or (at your option) any later version.
  12: 
  13:   PunBB is distributed in the hope that it will be useful, but
  14:   WITHOUT ANY WARRANTY; without even the implied warranty of
  15:   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16:   GNU General Public License for more details.
  17: 
  18:   You should have received a copy of the GNU General Public License
  19:   along with this program; if not, write to the Free Software
  20:   Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21:   MA  02111-1307  USA
  22: 
  23: ************************************************************************/
  24: 
  25: 
  26: // This script updates the forum database from version 1.2.* to 1.2.22
  27: // Copy this file to the forum root directory and run it. Then remove it from
  28: // the root directory.
  29: 
  30: 
  31: $update_from = array('1.2', '1.2.1', '1.2.2', '1.2.3', '1.2.4', '1.2.5', '1.2.6', '1.2.7', '1.2.8', '1.2.9', '1.2.10', '1.2.11', '1.2.12', '1.2.13', '1.2.14', '1.2.15', '1.2.16', '1.2.17', '1.2.18', '1.2.19', '1.2.20', '1.2.21', '1.2.22');
  32: $update_to = '1.2.23';
  33: 
  34: 
  35: define('PUN_ROOT', './');
  36: @include PUN_ROOT.'config.php';
  37: 
  38: // If PUN isn't defined, config.php is missing or corrupt or we are outside the root directory
  39: if (!defined('PUN'))
  40:     exit('This file must be run from the forum root directory.');
  41: 
  42: // Enable debug mode
  43: define('PUN_DEBUG', 1);
  44: 
  45: // Disable error reporting for uninitialized variables
  46: error_reporting(E_ERROR | E_WARNING | E_PARSE);
  47: 
  48: // Turn off magic_quotes_runtime
  49: set_magic_quotes_runtime(0);
  50: 
  51: // Turn off PHP time limit
  52: @set_time_limit(0);
  53: 
  54: 
  55: // Load the functions script
  56: require PUN_ROOT.'include/functions.php';
  57: 
  58: 
  59: // Load DB abstraction layer and try to connect
  60: require PUN_ROOT.'include/dblayer/common_db.php';
  61: 
  62: 
  63: // Check current version
  64: $result1 = $db->query('SELECT cur_version FROM '.$db->prefix.'options');
  65: $result2 = $db->query('SELECT conf_value FROM '.$db->prefix.'config WHERE conf_name=\'o_cur_version\'');
  66: $cur_version = ($result1) ? $db->result($result1) : (($result2 && $db->num_rows($result2)) ? $db->result($result2) : 'beta');
  67: 
  68: if (!in_array($cur_version, $update_from))
  69:     error('Version mismatch. This script updates version '.implode(', ', $update_from).' to version '.$update_to.'. The database \''.$db_name.'\' doesn\'t seem to be running a supported version.', __FILE__, __LINE__);
  70: 
  71: 
  72: // Get the forum config
  73: $result = $db->query('SELECT * FROM '.$db->prefix.'config');
  74: while ($cur_config_item = $db->fetch_row($result))
  75:     $pun_config[$cur_config_item[0]] = $cur_config_item[1];
  76: 
  77: 
  78: if (!isset($_POST['form_sent']))
  79: {
  80: 
  81: ?>
  82: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  83: 
  84: <html dir="ltr">
  85: <head>
  86: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  87: <title>FluxBB Update</title>
  88: <link rel="stylesheet" type="text/css" href="style/Oxygen.css" />
  89: </head>
  90: <body>
  91: 
  92: <div id="punwrap">
  93: <div id="puninstall" class="pun" style="margin: 10% 20% auto 20%">
  94: 
  95: <div class="blockform">
  96:     <h2><span>FluxBB Update</span></h2>
  97:     <div class="box">
  98:         <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" onsubmit="this.start.disabled=true">
  99:             <div><input type="hidden" name="form_sent" value="1" /></div>
 100:             <div class="inform">
 101:                 <p style="font-size: 1.1em">This script will update your current PunBB/FluxBB <?php echo $cur_version ?> forum database to FluxBB <?php echo $update_to ?>. The update procedure might take anything from a second to a few minutes depending on the speed of the server and the size of the forum database. Don't forget to make a backup of the database before continuing.</p>
 102:                 <p style="font-size: 1.1em">Did you read the update instructions in the documentation? If not, start there.</p>
 103:             </div>
 104:             <p><input type="submit" name="start" value="Start upgrade" /></p>
 105:         </form>
 106:     </div>
 107: </div>
 108: 
 109: </div>
 110: </div>
 111: 
 112: </body>
 113: </html>
 114: <?php
 115: 
 116: }
 117: else
 118: {
 119:     // If we're upgrading from 1.2
 120:     if ($cur_version == '1.2')
 121:     {
 122:         // Insert new config option o_additional_navlinks
 123:         $db->query('INSERT INTO '.$db->prefix.'config (conf_name, conf_value) VALUES(\'o_additional_navlinks\', NULL)') or error('Unable to alter DB structure.', __FILE__, __LINE__, $db->error());
 124:     }
 125: 
 126:     // We need to add a unique index to avoid users having multiple rows in the online table
 127:     if ($db_type == 'mysql' || $db_type == 'mysqli')
 128:     {
 129:         $result = $db->query('SHOW INDEX FROM '.$db->prefix.'online') or error('Unable to check DB structure.', __FILE__, __LINE__, $db->error());
 130: 
 131:         if ($db->num_rows($result) == 1)
 132:             $db->query('ALTER TABLE '.$db->prefix.'online ADD UNIQUE INDEX '.$db->prefix.'online_user_id_ident_idx(user_id,ident)') or error('Unable to alter DB structure.', __FILE__, __LINE__, $db->error());
 133:     }
 134: 
 135:     // This feels like a good time to synchronize the forums
 136:     $result = $db->query('SELECT id FROM '.$db->prefix.'forums') or error('Unable to fetch forum info.', __FILE__, __LINE__, $db->error());
 137: 
 138:     while ($row = $db->fetch_row($result))
 139:         update_forum($row[0]);
 140: 
 141: 
 142:     // We'll empty the search cache table as well (using DELETE FROM since SQLite does not support TRUNCATE TABLE)
 143:     $db->query('DELETE FROM '.$db->prefix.'search_cache') or error('Unable to flush search results.', __FILE__, __LINE__, $db->error());
 144: 
 145: 
 146:     // Finally, we update the version number
 147:     $db->query('UPDATE '.$db->prefix.'config SET conf_value=\''.$update_to.'\' WHERE conf_name=\'o_cur_version\'') or error('Unable to update version.', __FILE__, __LINE__, $db->error());
 148: 
 149: 
 150:     // Delete all .php files in the cache (someone might have visited the forums while we were updating and thus, generated incorrect cache files)
 151:     $d = dir(PUN_ROOT.'cache');
 152:     while (($entry = $d->read()) !== false)
 153:     {
 154:         if (substr($entry, strlen($entry)-4) == '.php')
 155:             @unlink(PUN_ROOT.'cache/'.$entry);
 156:     }
 157:     $d->close();
 158: 
 159: ?>
 160: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 161: 
 162: <html dir="ltr">
 163: <head>
 164: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 165: <title>FluxBB Update</title>
 166: <link rel="stylesheet" type="text/css" href="style/Oxygen.css" />
 167: </head>
 168: <body>
 169: 
 170: <div id="punwrap">
 171: <div id="puninstall" class="pun" style="margin: 10% 20% auto 20%">
 172: 
 173: <div class="block">
 174:     <h2><span>Update completed</span></h2>
 175:     <div class="box">
 176:         <div class="inbox">
 177:             <p>Update successful! Your forum database has now been updated to version <?php echo $update_to ?>. You should now remove this script from the forum root directory and follow the rest of the instructions in the documentation.</p>
 178:         </div>
 179:     </div>
 180: </div>
 181: 
 182: </div>
 183: </div>
 184: 
 185: </body>
 186: </html>
 187: <?php
 188: 
 189: }


a/upload/admin_index.php b/upload/admin_index.php
 43:     if (!ini_get('allow_url_fopen')) 43:     if (!ini_get('allow_url_fopen'))
 44:         message('Unable to check for upgrade since \'allow_url_fopen\' is disabled on this system.'); 44:         message('Unable to check for upgrade since \'allow_url_fopen\' is disabled on this system.');
 45:  45: 
 46:     $fp = @fopen('http://fluxbb.org/latest_version', 'r'); 46:     $latest_version = trim(@file_get_contents('http://fluxbb.org/latest_version'));
 47:     $latest_version = trim(@fread($fp, 16)); 47:     if (empty($latest_version))
 48:     @fclose($fp); 
 49:  
 50:     if ($latest_version == '') 
 51:         message('Check for upgrade failed for unknown reasons.'); 48:         message('Check for upgrade failed for unknown reasons.');
 52:  49: 
 53:     $cur_version = str_replace(array('.', 'dev', 'beta', ' '), '', strtolower($pun_config['o_cur_version'])); 50:     if (version_compare($pun_config['o_cur_version'], $latest_version, '>='))
 54:     $cur_version = (strlen($cur_version) == 2) ? intval($cur_version) * 10 : intval($cur_version); 
 55:  
 56:     $latest_version = str_replace('.', '', strtolower($latest_version)); 
 57:     $latest_version = (strlen($latest_version) == 2) ? intval($latest_version) * 10 : intval($latest_version); 
 58:  
 59:     if ($cur_version >= $latest_version) 
 60:         message('You are running the latest version of FluxBB.'); 51:         message('You are running the latest version of FluxBB.');
 61:     else 52:     else
 62:         message('A new version of FluxBB has been released. You can download the latest version at <a href="http://fluxbb.org/">FluxBB.org</a>.'); 53:         message('A new version of FluxBB has been released. You can download the latest version at <a href="http://fluxbb.org/">FluxBB.org</a>.');


a/upload/admin_prune.php b/upload/admin_prune.php
 42:         confirm_referrer('admin_prune.php'); 42:         confirm_referrer('admin_prune.php');
 43:  43: 
 44:         $prune_from = $_POST['prune_from']; 44:         $prune_from = $_POST['prune_from'];
  45:         $prune_sticky = isset($_POST['prune_sticky']) ? '1' : '0';
 45:         $prune_days = intval($_POST['prune_days']); 46:         $prune_days = intval($_POST['prune_days']);
 46:         $prune_date = ($prune_days) ? time() - ($prune_days*86400) : -1; 47:         $prune_date = ($prune_days) ? time() - ($prune_days*86400) : -1;
 47:  48: 
 56:             { 57:             {
 57:                 $fid = $db->result($result, $i); 58:                 $fid = $db->result($result, $i);
 58:  59: 
 59:                 prune($fid, $_POST['prune_sticky'], $prune_date); 60:                 prune($fid, $prune_sticky, $prune_date);
 60:                 update_forum($fid); 61:                 update_forum($fid);
 61:             } 62:             }
 62:         } 63:         }
 63:         else 64:         else
 64:         { 65:         {
 65:             $prune_from = intval($prune_from); 66:             $prune_from = intval($prune_from);
 66:             prune($prune_from, $_POST['prune_sticky'], $prune_date); 67:             prune($prune_from, $prune_sticky, $prune_date);
 67:             update_forum($prune_from); 68:             update_forum($prune_from);
 68:         } 69:         }
 69:  70: 
 93:     // Concatenate together the query for counting number or topics to prune 94:     // Concatenate together the query for counting number or topics to prune
 94:     $sql = 'SELECT COUNT(id) FROM '.$db->prefix.'topics WHERE last_post<'.$prune_date.' AND moved_to IS NULL'; 95:     $sql = 'SELECT COUNT(id) FROM '.$db->prefix.'topics WHERE last_post<'.$prune_date.' AND moved_to IS NULL';
 95:  96: 
 96:     if ($_POST['prune_sticky'] == '0') 97:     if (!$prune_sticky)
 97:         $sql .= ' AND sticky=\'0\''; 98:         $sql .= ' AND sticky=\'0\'';
 98:  99: 
 99:     if ($prune_from != 'all')100:     if ($prune_from != 'all')
127:             <form method="post" action="admin_prune.php?action=foo">128:             <form method="post" action="admin_prune.php?action=foo">
128:                 <div class="inform">129:                 <div class="inform">
129:                     <input type="hidden" name="prune_days" value="<?php echo $prune_days ?>" />130:                     <input type="hidden" name="prune_days" value="<?php echo $prune_days ?>" />
130:                     <input type="hidden" name="prune_sticky" value="<?php echo $_POST['prune_sticky'] ?>" />131:                     <input type="hidden" name="prune_sticky" value="<?php echo $prune_sticky ?>" />
131:                     <input type="hidden" name="prune_from" value="<?php echo $prune_from ?>" />132:                     <input type="hidden" name="prune_from" value="<?php echo $prune_from ?>" />
132:                     <fieldset>133:                     <fieldset>
133:                         <legend>Confirm prune posts</legend>134:                         <legend>Confirm prune posts</legend>


a/upload/header.php b/upload/header.php
 33: header('Cache-Control: post-check=0, pre-check=0', false); 33: header('Cache-Control: post-check=0, pre-check=0', false);
 34: header('Pragma: no-cache');        // For HTTP/1.0 compability 34: header('Pragma: no-cache');        // For HTTP/1.0 compability
 35:  35: 
  36: // Send the Content-type header in case the web server is setup to send something else
  37: header('Content-type: text/html; charset='.$lang_common['lang_encoding']);
 36:  38: 
 37: // Load the template 39: // Load the template
 38: if (defined('PUN_ADMIN_CONSOLE')) 40: if (defined('PUN_ADMIN_CONSOLE'))


a/upload/include/common.php b/upload/include/common.php
 55: error_reporting(E_ALL ^ E_NOTICE); 55: error_reporting(E_ALL ^ E_NOTICE);
 56:  56: 
 57: // Turn off magic_quotes_runtime 57: // Turn off magic_quotes_runtime
 58: set_magic_quotes_runtime(0); 58: if (get_magic_quotes_runtime())
  59:     set_magic_quotes_runtime(0);
 59:  60: 
 60: // Strip slashes from GET/POST/COOKIE (if magic_quotes_gpc is enabled) 61: // Strip slashes from GET/POST/COOKIE (if magic_quotes_gpc is enabled)
 61: if (get_magic_quotes_gpc()) 62: if (get_magic_quotes_gpc())


a/upload/include/functions.php b/upload/include/functions.php
 36:     $cookie = array('user_id' => 1, 'password_hash' => 'Guest'); 36:     $cookie = array('user_id' => 1, 'password_hash' => 'Guest');
 37:  37: 
 38:     // If a cookie is set, we get the user_id and password hash from it 38:     // If a cookie is set, we get the user_id and password hash from it
 39:     if (isset($_COOKIE[$cookie_name])) 39:     if (isset($_COOKIE[$cookie_name]) && preg_match('/a:2:{i:0;s:\d+:"(\d+)";i:1;s:\d+:"([0-9a-f]+)";}/', $_COOKIE[$cookie_name], $matches))
 40:         list($cookie['user_id'], $cookie['password_hash']) = @unserialize($_COOKIE[$cookie_name]); 40:         list(, $cookie['user_id'], $cookie['password_hash']) = $matches;
 41:  41: 
 42:     if ($cookie['user_id'] > 1) 42:     if ($cookie['user_id'] > 1)
 43:     { 43:     {
104:                 $db->query('UPDATE '.$db->prefix.'online SET logged='.$now.$idle_sql.' WHERE user_id='.$pun_user['id']) or error('Unable to update online list', __FILE__, __LINE__, $db->error());104:                 $db->query('UPDATE '.$db->prefix.'online SET logged='.$now.$idle_sql.' WHERE user_id='.$pun_user['id']) or error('Unable to update online list', __FILE__, __LINE__, $db->error());
105:             }105:             }
106:         }106:         }
 107:         else
 108:         {
 109:             if (!$pun_user['logged'])
 110:                 $pun_user['logged'] = $pun_user['last_visit'];
 111:         }
107: 112: 
108:         $pun_user['is_guest'] = false;113:         $pun_user['is_guest'] = false;
109:     }114:     }


a/upload/install.php b/upload/install.php
 24:  24: 
 25:  25: 
 26: // The FluxBB version this script installs 26: // The FluxBB version this script installs
 27: $fluxbb_version = '1.2.20'; 27: $fluxbb_version = '1.2.23';
 28:  28: 
 29:  29: 
 30: define('PUN_ROOT', './'); 30: define('PUN_ROOT', './');
289: 289: 
290:         exit;290:         exit;
291:     }291:     }
 292:     
 293:     
 294:     // 
 295:     // Calls htmlspecialchars with a few options already set 
 296:     // 
 297:     function pun_htmlspecialchars($str) 
 298:     { 
 299:         return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); 
 300:     }
292: 301: 
293: 302: 
294:     $db_type = $_POST['req_db_type'];303:     $db_type = $_POST['req_db_type'];
348:             break;357:             break;
349: 358: 
350:         default:359:         default:
351:             error('\''.$db_type.'\' is not a valid database type.');360:             error('\''.pun_htmlspecialchars($db_type).'\' is not a valid database type.');
352:     }361:     }
353: 362: 
354:     // Create the database object (and connect/select db)363:     // Create the database object (and connect/select db)
1424:         <div class="fakeform">1433:         <div class="fakeform">
1425:             <div class="inform">1434:             <div class="inform">
1426:                 <div class="forminfo">1435:                 <div class="forminfo">
1427:                     <p>To finalize the installation all you need to do is to <strong>copy and paste the text in the text box below into a file called config.php and then upload this file to the root directory of your FluxBB installation</strong>. Make sure there are no linebreaks or spaces before &lt;?php. You can later edit config.php if you reconfigure your setup (e.g. change the database password or ).</p>1436:                     <p>To finalize the installation all you need to do is to <strong>copy and paste the text in the text box below into a file called config.php and then upload this file to the root directory of your FluxBB installation</strong>. Make sure there are no linebreaks or spaces before &lt;?php. You can later edit config.php if you reconfigure your setup (e.g. change the database password).</p>
1428: <?php if ($alerts != ''): ?>                    <?php echo $alerts."\n" ?>1437: <?php if ($alerts != ''): ?>                    <?php echo $alerts."\n" ?>
1429: <?php endif; ?>                </div>1438: <?php endif; ?>                </div>
1430:                 <fieldset>1439:                 <fieldset>


a/upload/misc.php b/upload/misc.php
253:         message($lang_common['Bad request']);253:         message($lang_common['Bad request']);
254: 254: 
255:     // Make sure the user can view the topic255:     // Make sure the user can view the topic
256:     $result = $db->query('SELECT 1 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=1) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id='.$topic_id.' AND t.moved_to IS NULL') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());256:     $result = $db->query('SELECT 1 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.id='.$topic_id.' AND t.moved_to IS NULL') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
257:     if (!$db->num_rows($result))257:     if (!$db->num_rows($result))
258:         message($lang_common['Bad request']);258:         message($lang_common['Bad request']);
259: 259: 


a/upload/post.php b/upload/post.php
140:             require PUN_ROOT.'include/email.php';140:             require PUN_ROOT.'include/email.php';
141:             if (!is_valid_email($email))141:             if (!is_valid_email($email))
142:                 $errors[] = $lang_common['Invalid e-mail'];142:                 $errors[] = $lang_common['Invalid e-mail'];
 143: 
 144:             // Check it it's a banned e-mail address
 145:             // we should only check guests because members addresses are already verified
 146:             if ($pun_user['is_guest'] && is_banned_email($email))
 147:             {
 148:                 if ($pun_config['p_allow_banned_email'] == '0')
 149:                     $errors[] = $lang_prof_reg['Banned e-mail'];
 150: 
 151:                 $banned_email = true;    // Used later when we send an alert e-mail
 152:             }
 153:             else
 154:                 $banned_email = false;
143:         }155:         }
144:     }156:     }
145: 157: 
313:             update_forum($fid);325:             update_forum($fid);
314:         }326:         }
315: 327: 
 328:         // If we previously found out that the e-mail was banned
 329:         if ($banned_email && $pun_config['o_mailing_list'] != '')
 330:         {        
 331:             $mail_subject = 'Alert - Banned e-mail detected';
 332:             $mail_message = 'User \''.$username.'\' posted with banned e-mail address: '.$email."\n\n".'Post URL: '.$pun_config['o_base_url'].'/viewtopic.php?pid='.$new_pid.'#p'.$new_pid."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';
 333: 
 334:             pun_mail($pun_config['o_mailing_list'], $mail_subject, $mail_message);
 335:         }
 336: 
316:         // If the posting user is logged in, increment his/her post count337:         // If the posting user is logged in, increment his/her post count
317:         if (!$pun_user['is_guest'])338:         if (!$pun_user['is_guest'])
318:         {339:         {


a/upload/profile.php b/upload/profile.php
347: 347: 
348:         if (is_uploaded_file($uploaded_file['tmp_name']))348:         if (is_uploaded_file($uploaded_file['tmp_name']))
349:         {349:         {
 350:             // Preliminary file check, adequate in most cases
350:             $allowed_types = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png');351:             $allowed_types = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png');
351:             if (!in_array($uploaded_file['type'], $allowed_types))352:             if (!in_array($uploaded_file['type'], $allowed_types))
352:                 message($lang_profile['Bad type']);353:                 message($lang_profile['Bad type']);
355:             if ($uploaded_file['size'] > $pun_config['o_avatars_size'])356:             if ($uploaded_file['size'] > $pun_config['o_avatars_size'])
356:                 message($lang_profile['Too large'].' '.$pun_config['o_avatars_size'].' '.$lang_profile['bytes'].'.');357:                 message($lang_profile['Too large'].' '.$pun_config['o_avatars_size'].' '.$lang_profile['bytes'].'.');
357: 358: 
 359:             // Move the file to the avatar directory. We do this before checking the width/height to circumvent open_basedir restrictions.
 360:             if (!@move_uploaded_file($uploaded_file['tmp_name'], $pun_config['o_avatars_dir'].'/'.$id.'.tmp'))
 361:                 message($lang_profile['Move failed'].' <a href="mailto:'.$pun_config['o_admin_email'].'">'.$pun_config['o_admin_email'].'</a>.');
 362: 
 363:             list($width, $height, $type,) = @getimagesize($pun_config['o_avatars_dir'].'/'.$id.'.tmp');
 364: 
358:             // Determine type365:             // Determine type
359:             $extensions = null;366:             $extensions = null;
360:             if ($uploaded_file['type'] == 'image/gif')367:             if ($type == IMAGETYPE_GIF)
361:                 $extensions = array('.gif', '.jpg', '.png');368:                 $extensions = array('.gif', '.jpg', '.png');
362:             else if ($uploaded_file['type'] == 'image/jpeg' || $uploaded_file['type'] == 'image/pjpeg')369:             else if ($type == IMAGETYPE_JPEG)
363:                 $extensions = array('.jpg', '.gif', '.png');370:                 $extensions = array('.jpg', '.gif', '.png');
364:             else371:             else if ($type == IMAGETYPE_PNG)
365:                 $extensions = array('.png', '.gif', '.jpg');372:                 $extensions = array('.png', '.gif', '.jpg');
366: 373:             else
367:             // Move the file to the avatar directory. We do this before checking the width/height to circumvent open_basedir restrictions.374:             {
368:             if (!@move_uploaded_file($uploaded_file['tmp_name'], $pun_config['o_avatars_dir'].'/'.$id.'.tmp'))375:                 // Invalid type
369:                 message($lang_profile['Move failed'].' <a href="mailto:'.$pun_config['o_admin_email'].'">'.$pun_config['o_admin_email'].'</a>.');376:                 @unlink($pun_config['o_avatars_dir'].'/'.$id.'.tmp');
 377:                 message($lang_profile['Bad type']);
 378:             }
370: 379: 
371:             // Now check the width/height380:             // Now check the width/height
372:             list($width, $height, $type,) = getimagesize($pun_config['o_avatars_dir'].'/'.$id.'.tmp'); 
373:             if (empty($width) || empty($height) || $width > $pun_config['o_avatars_width'] || $height > $pun_config['o_avatars_height'])381:             if (empty($width) || empty($height) || $width > $pun_config['o_avatars_width'] || $height > $pun_config['o_avatars_height'])
374:             {382:             {
375:                 @unlink($pun_config['o_avatars_dir'].'/'.$id.'.tmp');383:                 @unlink($pun_config['o_avatars_dir'].'/'.$id.'.tmp');
376:                 message($lang_profile['Too wide or high'].' '.$pun_config['o_avatars_width'].'x'.$pun_config['o_avatars_height'].' '.$lang_profile['pixels'].'.');384:                 message($lang_profile['Too wide or high'].' '.$pun_config['o_avatars_width'].'x'.$pun_config['o_avatars_height'].' '.$lang_profile['pixels'].'.');
377:             }385:             }
378:             else if ($type == 1 && $uploaded_file['type'] != 'image/gif')    // Prevent dodgy uploads 
379:             { 
380:                 @unlink($pun_config['o_avatars_dir'].'/'.$id.'.tmp'); 
381:                 message($lang_profile['Bad type']); 
382:             }             
383: 386: 
384:             // Delete any old avatars and put the new one in place387:             // Delete any old avatars and put the new one in place
385:             @unlink($pun_config['o_avatars_dir'].'/'.$id.$extensions[0]);388:             @unlink($pun_config['o_avatars_dir'].'/'.$id.$extensions[0]);


a/upload/register.php b/upload/register.php
163:     // Check if someone else already has registered with that e-mail address163:     // Check if someone else already has registered with that e-mail address
164:     $dupe_list = array();164:     $dupe_list = array();
165: 165: 
166:     $result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE email=\''.$email1.'\'') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());166:     $result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE email=\''.$db->escape($email1).'\'') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
167:     if ($db->num_rows($result))167:     if ($db->num_rows($result))
168:     {168:     {
169:         if ($pun_config['p_allow_dupe_email'] == '0')169:         if ($pun_config['p_allow_dupe_email'] == '0')
196:     $password_hash = pun_hash($password1);196:     $password_hash = pun_hash($password1);
197: 197: 
198:     // Add the user198:     // Add the user
199:     $db->query('INSERT INTO '.$db->prefix.'users (username, group_id, password, email, email_setting, save_pass, timezone, language, style, registered, registration_ip, last_visit) VALUES(\''.$db->escape($username).'\', '.$intial_group_id.', \''.$password_hash.'\', \''.$email1.'\', '.$email_setting.', '.$save_pass.', '.$timezone.' , \''.$db->escape($language).'\', \''.$pun_config['o_default_style'].'\', '.$now.', \''.get_remote_address().'\', '.$now.')') or error('Unable to create user', __FILE__, __LINE__, $db->error());199:     $db->query('INSERT INTO '.$db->prefix.'users (username, group_id, password, email, email_setting, save_pass, timezone, language, style, registered, registration_ip, last_visit) VALUES(\''.$db->escape($username).'\', '.$intial_group_id.', \''.$password_hash.'\', \''.$db->escape($email1).'\', '.$email_setting.', '.$save_pass.', '.$timezone.' , \''.$db->escape($language).'\', \''.$pun_config['o_default_style'].'\', '.$now.', \''.get_remote_address().'\', '.$now.')') or error('Unable to create user', __FILE__, __LINE__, $db->error());
200:     $new_uid = $db->insert_id();200:     $new_uid = $db->insert_id();
201: 201: 
202: 202: 


a/upload/search.php b/upload/search.php
 33:  33: 
 34: // Load the search.php language file 34: // Load the search.php language file
 35: require PUN_ROOT.'lang/'.$pun_user['language'].'/search.php'; 35: require PUN_ROOT.'lang/'.$pun_user['language'].'/search.php';
  36: require PUN_ROOT.'lang/'.$pun_user['language'].'/forum.php';
 36:  37: 
 37:  38: 
 38: if ($pun_user['g_read_board'] == '0') 39: if ($pun_user['g_read_board'] == '0')
459:             $sql = 'SELECT p.id AS pid, p.poster AS pposter, p.posted AS pposted, p.poster_id, '.$substr_sql.'(p.message, 1, 1000) AS message, t.id AS tid, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.forum_id FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id WHERE p.id IN('.$search_results.') ORDER BY '.$sort_by_sql;460:             $sql = 'SELECT p.id AS pid, p.poster AS pposter, p.posted AS pposted, p.poster_id, '.$substr_sql.'(p.message, 1, 1000) AS message, t.id AS tid, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.forum_id FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id WHERE p.id IN('.$search_results.') ORDER BY '.$sort_by_sql;
460:         }461:         }
461:         else462:         else
462:             $sql = 'SELECT t.id AS tid, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.closed, t.forum_id FROM '.$db->prefix.'topics AS t WHERE t.id IN('.$search_results.') ORDER BY '.$sort_by_sql;463:             $sql = 'SELECT t.id AS tid, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.closed, t.sticky, t.forum_id FROM '.$db->prefix.'topics AS t WHERE t.id IN('.$search_results.') ORDER BY '.$sort_by_sql;
463:  
464: 464: 
465:         // Determine the topic or post offset (based on $_GET['p'])465:         // Determine the topic or post offset (based on $_GET['p'])
466:         $per_page = ($show_as == 'posts') ? $pun_user['disp_posts'] : $pun_user['disp_topics'];466:         $per_page = ($show_as == 'posts') ? $pun_user['disp_posts'] : $pun_user['disp_topics'];
496: 496: 
497: <?php497: <?php
498: 498: 
499:         //Set background switching on for show as posts499:         // Set background switching on for show as posts
500:         $bg_switch = true;500:         $bg_switch = true;
501: 501: 
502:         if ($show_as == 'topics')502:         if ($show_as == 'topics')
525:         $result = $db->query('SELECT id, forum_name FROM '.$db->prefix.'forums') or error('Unable to fetch forum list', __FILE__, __LINE__, $db->error());525:         $result = $db->query('SELECT id, forum_name FROM '.$db->prefix.'forums') or error('Unable to fetch forum list', __FILE__, __LINE__, $db->error());
526: 526: 
527:         $forum_list = array();527:         $forum_list = array();
528:         while ($forum_list[] = $db->fetch_row($result))528:         while ($forum_list[] = $db->fetch_row($result));
529:             ; 
530: 529: 
531:         // Finally, lets loop through the results and output them530:         // Finally, lets loop through the results and output them
532:         for ($i = 0; $i < count($search_set); ++$i)531:         $count_search_set = count($search_set);
 532:         for ($i = 0; $i < $count_search_set; ++$i)
533:         {533:         {
534:             @reset($forum_list);534:             @reset($forum_list);
535:             while (list(, $temp) = @each($forum_list))535:             while (list(, $temp) = @each($forum_list))
623:                 else623:                 else
624:                     $subject_new_posts = null;624:                     $subject_new_posts = null;
625: 625: 
 626:                 if ($search_set[$i]['sticky'] == '1')
 627:                 {
 628:                     $subject = '<span class="stickytext">'.$lang_forum['Sticky'].': </span>'.$subject;
 629:                     $item_status .= ' isticky';
 630:                     $icon_text .= ' '.$lang_forum['Sticky'];
 631:                 }
 632: 
626:                 $num_pages_topic = ceil(($search_set[$i]['num_replies'] + 1) / $pun_user['disp_posts']);633:                 $num_pages_topic = ceil(($search_set[$i]['num_replies'] + 1) / $pun_user['disp_posts']);
627: 634: 
628:                 if ($num_pages_topic > 1)635:                 if ($num_pages_topic > 1)


a/upload/userlist.php b/upload/userlist.php
 42: $show_post_count = ($pun_config['o_show_post_count'] == '1' || $pun_user['g_id'] < PUN_GUEST) ? true : false; 42: $show_post_count = ($pun_config['o_show_post_count'] == '1' || $pun_user['g_id'] < PUN_GUEST) ? true : false;
 43:  43: 
 44: $username = (isset($_GET['username']) && $pun_user['g_search_users'] == '1') ? pun_trim($_GET['username']) : ''; 44: $username = (isset($_GET['username']) && $pun_user['g_search_users'] == '1') ? pun_trim($_GET['username']) : '';
 45: $show_group = (!isset($_GET['show_group']) || intval($_GET['show_group']) < -1 && intval($_GET['show_group']) > 2) ? -1 : intval($_GET['show_group']); 45: $show_group = !isset($_GET['show_group']) ? -1 : intval($_GET['show_group']);
 46: $sort_by = (!isset($_GET['sort_by']) || $_GET['sort_by'] != 'username' && $_GET['sort_by'] != 'registered' && ($_GET['sort_by'] != 'num_posts' || !$show_post_count)) ? 'username' : $_GET['sort_by']; 46: $sort_by = (!isset($_GET['sort_by']) || $_GET['sort_by'] != 'username' && $_GET['sort_by'] != 'registered' && ($_GET['sort_by'] != 'num_posts' || !$show_post_count)) ? 'username' : $_GET['sort_by'];
 47: $sort_dir = (!isset($_GET['sort_dir']) || $_GET['sort_dir'] != 'ASC' && $_GET['sort_dir'] != 'DESC') ? 'ASC' : strtoupper($_GET['sort_dir']); 47: $sort_dir = (!isset($_GET['sort_dir']) || $_GET['sort_dir'] != 'ASC' && $_GET['sort_dir'] != 'DESC') ? 'ASC' : strtoupper($_GET['sort_dir']);
 48:  48: 


hdiff - version: 2.1.0 (modified)