diff --git a/.gitignore b/.gitignore index 0fab765bf..ffb41f0b5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ .idea .php_cs.cache composer.phar -composer.lock configs/local.php data/avatars data/torrent_files diff --git a/README.md b/README.md index ecccaba3d..02f5e6396 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,8 @@ and go from there. The documentation will be translated into english in the near * Apache / nginx * MySQL / MariaDB / Percona -* PHP: 5.6 / 7.0 / 7.1 -* PHP Extensions: bcmath, intl, tidy (optional), xml +* PHP: 7.1 / 7.2 / 7.3 +* PHP Extensions: bcmath, intl, tidy (optional), xml, xmlwriter ## Installation diff --git a/admin/admin_attach_cp.php b/admin/admin_attach_cp.php index 47a8fbacd..a05774157 100644 --- a/admin/admin_attach_cp.php +++ b/admin/admin_attach_cp.php @@ -158,8 +158,8 @@ if ($confirm && count($delete_id_list) > 0) { $hidden_fields .= ''; $hidden_fields .= ''; - for ($i = 0, $iMax = count($delete_id_list); $i < $iMax; $i++) { - $hidden_fields .= ''; + foreach ($delete_id_list as $iValue) { + $hidden_fields .= ''; } print_confirmation(array( @@ -382,8 +382,8 @@ if ($view === 'attachments') { for ($i = 0, $iMax = count($attachments); $i < $iMax; $i++) { $delete_box = ''; - for ($j = 0, $jMax = count($delete_id_list); $j < $jMax; $j++) { - if ($delete_id_list[$j] == $attachments[$i]['attach_id']) { + foreach ($delete_id_list as $jValue) { + if ($jValue == $attachments[$i]['attach_id']) { $delete_box = ''; break; } diff --git a/admin/admin_attachments.php b/admin/admin_attachments.php index 0f615fe37..a2890b979 100644 --- a/admin/admin_attachments.php +++ b/admin/admin_attachments.php @@ -133,23 +133,25 @@ $select_pm_size_mode = size_select('pm_size', $pm_size); if ($search_imagick) { $imagick = ''; - if (preg_match('/convert/i', $imagick)) { + if (false !== stripos($imagick, "convert")) { return true; - } elseif ($imagick != 'none') { - if (!preg_match('/WIN/i', PHP_OS)) { + } + + if ($imagick != 'none') { + if (!false !== stripos(PHP_OS, "WIN")) { $retval = @exec('whereis convert'); $paths = explode(' ', $retval); if (is_array($paths)) { - for ($i = 0, $iMax = count($paths); $i < $iMax; $i++) { + foreach ($paths as $i => $iValue) { $path = basename($paths[$i]); if ($path == 'convert') { - $imagick = $paths[$i]; + $imagick = $iValue; } } } - } elseif (preg_match('/WIN/i', PHP_OS)) { + } elseif (false !== stripos(PHP_OS, "WIN")) { $path = 'c:/imagemagick/convert.exe'; if (!@file_exists(amod_realpath($path))) { @@ -344,7 +346,9 @@ if ($check_image_cat) { // Does the target directory exist, is it a directory and writeable if (!@file_exists(amod_realpath($upload_dir))) { - mkdir($upload_dir, 0755); + if (!mkdir($upload_dir, 0755) && !is_dir($upload_dir)) { + throw new \RuntimeException(sprintf('Directory "%s" was not created', $upload_dir)); + } @chmod($upload_dir, 0777); if (!@file_exists(amod_realpath($upload_dir))) { diff --git a/admin/admin_board.php b/admin/admin_board.php index c2a534b03..27d71181a 100644 --- a/admin/admin_board.php +++ b/admin/admin_board.php @@ -14,7 +14,7 @@ if (!empty($setmodules)) { } require __DIR__ . '/pagestart.php'; -$mode = isset($_GET['mode']) ? $_GET['mode'] : ''; +$mode = $_GET['mode'] ?? ''; $return_links = array( 'index' => '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''), @@ -34,7 +34,7 @@ if (!$result = DB()->sql_query($sql)) { $config_value = $row['config_value']; $default_config[$config_name] = $config_value; - $new[$config_name] = isset($_POST[$config_name]) ? $_POST[$config_name] : $default_config[$config_name]; + $new[$config_name] = $_POST[$config_name] ?? $default_config[$config_name]; if (isset($_POST['submit']) && $row['config_value'] != $new[$config_name]) { if ($config_name == 'seed_bonus_points' || diff --git a/admin/admin_cron.php b/admin/admin_cron.php index 82c108464..9bf4d2acc 100644 --- a/admin/admin_cron.php +++ b/admin/admin_cron.php @@ -14,11 +14,11 @@ if (!empty($setmodules)) { return; } -$mode = isset($_GET['mode']) ? $_GET['mode'] : ''; +$mode = $_GET['mode'] ?? ''; $job_id = isset($_GET['id']) ? (int)$_GET['id'] : ''; $submit = isset($_POST['submit']); $jobs = isset($_POST['select']) ? implode(',', $_POST['select']) : ''; -$cron_action = isset($_POST['cron_action']) ? $_POST['cron_action'] : ''; +$cron_action = $_POST['cron_action'] ?? ''; if ($mode == 'run' && !$job_id) { define('BB_ROOT', './../'); @@ -40,7 +40,7 @@ foreach ($sql as $row) { $config_value = $row['config_value']; $default_config[$config_name] = $config_value; - $new[$config_name] = isset($_POST[$config_name]) ? $_POST[$config_name] : $default_config[$config_name]; + $new[$config_name] = $_POST[$config_name] ?? $default_config[$config_name]; if (isset($_POST['submit']) && $row['config_value'] != $new[$config_name]) { bb_update_config(array($config_name => $new[$config_name])); diff --git a/admin/admin_extensions.php b/admin/admin_extensions.php index 95486cd27..f40e548d9 100644 --- a/admin/admin_extensions.php +++ b/admin/admin_extensions.php @@ -238,9 +238,9 @@ if ($submit && $mode == 'groups') { $allowed_list = array(); - for ($i = 0, $iMax = count($group_allowed_list); $i < $iMax; $i++) { + foreach ($group_allowed_list as $iValue) { for ($j = 0, $jMax = count($group_change_list); $j < $jMax; $j++) { - if ($group_allowed_list[$i] == $group_change_list[$j]) { + if ($iValue == $group_change_list[$j]) { $allowed_list[$j] = 1; } } @@ -371,7 +371,7 @@ if ($mode == 'groups') { $template->assign_vars(array( 'TPL_ATTACH_EXTENSION_GROUPS' => true, - 'ADD_GROUP_NAME' => isset($extension_group) ? $extension_group : '', + 'ADD_GROUP_NAME' => $extension_group ?? '', 'MAX_FILESIZE' => $max_add_filesize, 'S_FILESIZE' => size_select('add_size_select', $size), 'S_ADD_DOWNLOAD_MODE' => download_select('add_download_mode'), @@ -456,8 +456,8 @@ if ($add_forum && $e_mode == 'perm' && $group) { $add_forums_list = get_var('entries', array(0)); $add_all_forums = false; - for ($i = 0, $iMax = count($add_forums_list); $i < $iMax; $i++) { - if ($add_forums_list[$i] == 0) { + foreach ($add_forums_list as $iValue) { + if ($iValue == 0) { $add_all_forums = true; } } @@ -491,9 +491,9 @@ if ($add_forum && $e_mode == 'perm' && $group) { } // Generate array for Auth_Pack, do not add doubled forums - for ($i = 0, $iMax = count($add_forums_list); $i < $iMax; $i++) { + foreach ($add_forums_list as $i => $iValue) { if (!in_array($add_forums_list[$i], $auth_p)) { - $auth_p[] = $add_forums_list[$i]; + $auth_p[] = $iValue; } } @@ -528,9 +528,9 @@ if ($delete_forum && $e_mode == 'perm' && $group) { $auth_p = array(); // Generate array for Auth_Pack, delete the chosen ones - for ($i = 0, $iMax = count($auth_p2); $i < $iMax; $i++) { + foreach ($auth_p2 as $i => $iValue) { if (!in_array($auth_p2[$i], $delete_forums_list)) { - $auth_p[] = $auth_p2[$i]; + $auth_p[] = $iValue; } } diff --git a/admin/admin_forums.php b/admin/admin_forums.php index 44c2b678a..5ab972ed3 100644 --- a/admin/admin_forums.php +++ b/admin/admin_forums.php @@ -45,7 +45,7 @@ $forumname = ''; if (isset($_REQUEST['addforum']) || isset($_REQUEST['addcategory'])) { $mode = isset($_REQUEST['addforum']) ? 'addforum' : 'addcat'; - if ($mode == 'addforum' && isset($_POST['addforum']) && isset($_POST['forumname']) && is_array($_POST['addforum'])) { + if (isset($_POST['addforum'], $_POST['forumname']) && $mode == 'addforum' && is_array($_POST['addforum'])) { $req_cat_id = array_keys($_POST['addforum']); $cat_id = reset($req_cat_id); $forumname = stripslashes($_POST['forumname'][$cat_id]); @@ -559,15 +559,17 @@ if ($mode) { $move_down_forum_id = false; $forums = $cat_forums[$cat_id]['f_ord']; $forum_order = $forum_info['forum_order']; - $prev_forum = isset($forums[$forum_order - 10]) ? $forums[$forum_order - 10] : false; - $next_forum = isset($forums[$forum_order + 10]) ? $forums[$forum_order + 10] : false; + $prev_forum = $forums[$forum_order - 10] ?? false; + $next_forum = $forums[$forum_order + 10] ?? false; // move selected forum ($forum_id) UP if ($move < 0 && $prev_forum) { if ($forum_info['forum_parent'] && $prev_forum['forum_parent'] != $forum_info['forum_parent']) { $show_main_page = true; break; - } elseif ($move_down_forum_id = get_prev_root_forum_id($forums, $forum_order)) { + } + + if ($move_down_forum_id = get_prev_root_forum_id($forums, $forum_order)) { $move_up_forum_id = $forum_id; $move_down_ord_val = (get_sf_count($forum_id) + 1) * 10; $move_up_ord_val = ((get_sf_count($move_down_forum_id) + 1) * 10) + $move_down_ord_val; @@ -578,7 +580,9 @@ if ($mode) { if ($forum_info['forum_parent'] && $next_forum['forum_parent'] != $forum_info['forum_parent']) { $show_main_page = true; break; - } elseif ($move_up_forum_id = get_next_root_forum_id($forums, $forum_order)) { + } + + if ($move_up_forum_id = get_next_root_forum_id($forums, $forum_order)) { $move_down_forum_id = $forum_id; $move_down_forum_order = $forum_order; $move_down_ord_val = (get_sf_count($move_up_forum_id) + 1) * 10; diff --git a/admin/admin_groups.php b/admin/admin_groups.php index fc27b10c6..9bc6fcae8 100644 --- a/admin/admin_groups.php +++ b/admin/admin_groups.php @@ -87,7 +87,7 @@ if (!empty($_POST['edit']) || !empty($_POST['new'])) { $release_group = isset($_POST['release_group']) ? (int)$_POST['release_group'] : 0; $group_name = isset($_POST['group_name']) ? trim($_POST['group_name']) : ''; $group_desc = isset($_POST['group_description']) ? trim($_POST['group_description']) : ''; - $group_moderator = isset($_POST['username']) ? $_POST['username'] : ''; + $group_moderator = $_POST['username'] ?? ''; if ($group_name === '') { bb_die($lang['NO_GROUP_NAME']); diff --git a/admin/admin_phpinfo.php b/admin/admin_phpinfo.php index bad4a8286..dc909493f 100644 --- a/admin/admin_phpinfo.php +++ b/admin/admin_phpinfo.php @@ -14,4 +14,5 @@ if (!empty($setmodules)) { require __DIR__ . '/pagestart.php'; +/** @noinspection ForgottenDebugOutputInspection */ phpinfo(); diff --git a/admin/admin_ranks.php b/admin/admin_ranks.php index 346677fc9..46d1d13cd 100644 --- a/admin/admin_ranks.php +++ b/admin/admin_ranks.php @@ -15,7 +15,7 @@ if (!empty($setmodules)) { require __DIR__ . '/pagestart.php'; if (isset($_GET['mode']) || isset($_POST['mode'])) { - $mode = isset($_GET['mode']) ? $_GET['mode'] : $_POST['mode']; + $mode = $_GET['mode'] ?? $_POST['mode']; } else { // // These could be entered via a form button diff --git a/admin/admin_rebuild_search.php b/admin/admin_rebuild_search.php index 27c1f9d88..acb4126c1 100644 --- a/admin/admin_rebuild_search.php +++ b/admin/admin_rebuild_search.php @@ -134,7 +134,7 @@ if ($mode == 'submit' || $mode == 'refresh') { } // get the db sizes - list($search_data_size, $search_index_size, $search_tables_size) = get_db_sizes(); + [$search_data_size, $search_index_size, $search_tables_size] = get_db_sizes(); // get the post subject/text of each post $result = DB()->query(" @@ -290,7 +290,7 @@ if ($mode == 'submit' || $mode == 'refresh') { } // get the db sizes - list($search_data_size, $search_index_size, $search_tables_size) = get_db_sizes(); + [$search_data_size, $search_index_size, $search_tables_size] = get_db_sizes(); // calculate the final (estimated) values $final_search_tables_size = ''; diff --git a/admin/admin_sitemap.php b/admin/admin_sitemap.php index 6bd142f67..0fe43458a 100644 --- a/admin/admin_sitemap.php +++ b/admin/admin_sitemap.php @@ -24,7 +24,7 @@ if (!$result = DB()->sql_query($sql)) { $config_name = $row['config_name']; $config_value = $row['config_value']; $default_config[$config_name] = $config_value; - $new[$config_name] = isset($_POST[$config_name]) ? $_POST[$config_name] : $default_config[$config_name]; + $new[$config_name] = $_POST[$config_name] ?? $default_config[$config_name]; if (isset($_POST['submit']) && $row['config_value'] != $new[$config_name]) { $new_params[$config_name] = $new[$config_name]; diff --git a/admin/admin_smilies.php b/admin/admin_smilies.php index 1c4254689..196d209e2 100644 --- a/admin/admin_smilies.php +++ b/admin/admin_smilies.php @@ -16,7 +16,7 @@ require __DIR__ . '/pagestart.php'; // Check to see what mode we should operate in if (isset($_POST['mode']) || isset($_GET['mode'])) { - $mode = isset($_POST['mode']) ? $_POST['mode'] : $_GET['mode']; + $mode = $_POST['mode'] ?? $_GET['mode']; $mode = htmlspecialchars($mode); } else { $mode = ''; @@ -77,7 +77,7 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { bb_die('Could not read smiley pak file'); } - for ($i = 0, $iMax = count($fcontents); $i < $iMax; $i++) { + foreach ($fcontents as $i => $iValue) { $smile_data = explode($delimeter, trim(addslashes($fcontents[$i]))); for ($j = 2, $jMax = count($smile_data); $j < $jMax; $j++) { @@ -239,8 +239,7 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { } // Convert < and > to proper htmlentities for parsing - $smile_code = str_replace('<', '<', $smile_code); - $smile_code = str_replace('>', '>', $smile_code); + $smile_code = str_replace(['<', '>'], ['<', '>'], $smile_code); // Proceed with updating the smiley table $sql = 'UPDATE ' . BB_SMILIES . " @@ -255,10 +254,10 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { break; case 'savenew': - $smile_code = isset($_POST['smile_code']) ? $_POST['smile_code'] : $_GET['smile_code']; - $smile_url = isset($_POST['smile_url']) ? $_POST['smile_url'] : $_GET['smile_url']; + $smile_code = $_POST['smile_code'] ?? $_GET['smile_code']; + $smile_url = $_POST['smile_url'] ?? $_GET['smile_url']; $smile_url = bb_ltrim(basename($smile_url), "'"); - $smile_emotion = isset($_POST['smile_emotion']) ? $_POST['smile_emotion'] : $_GET['smile_emotion']; + $smile_emotion = $_POST['smile_emotion'] ?? $_GET['smile_emotion']; $smile_code = trim($smile_code); $smile_url = trim($smile_url); $smile_emotion = trim($smile_emotion); @@ -269,8 +268,7 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { } // Convert < and > to proper htmlentities for parsing - $smile_code = str_replace('<', '<', $smile_code); - $smile_code = str_replace('>', '>', $smile_code); + $smile_code = str_replace(['<', '>'], ['<', '>'], $smile_code); // Save the data to the smiley table $sql = 'INSERT INTO ' . BB_SMILIES . " (code, smile_url, emoticon) diff --git a/admin/admin_user_ban.php b/admin/admin_user_ban.php index fd1d1f75d..26c87f280 100644 --- a/admin/admin_user_ban.php +++ b/admin/admin_user_ban.php @@ -44,7 +44,7 @@ if (isset($_POST['submit'])) { if (isset($_POST['ban_email'])) { $email_list_temp = explode(',', $_POST['ban_email']); - for ($i = 0, $iMax = count($email_list_temp); $i < $iMax; $i++) { + foreach ($email_list_temp as $i => $iValue) { if (preg_match('/^(([a-z0-9&\'\.\-_\+])|(\*))+@(([a-z0-9\-])|(\*))+\.([a-z0-9\-]+\.)*?[a-z]+$/is', trim($email_list_temp[$i]))) { $email_list[] = trim($email_list_temp[$i]); } diff --git a/admin/admin_user_search.php b/admin/admin_user_search.php index 68e799717..a467f6d27 100644 --- a/admin/admin_user_search.php +++ b/admin/admin_user_search.php @@ -251,7 +251,7 @@ if (!isset($_REQUEST['dosearch'])) { $text = sprintf($lang['SEARCH_FOR_USERNAME'], strip_tags(htmlspecialchars(stripslashes($username)))); - $username = preg_replace('/\*/', '%', trim(strip_tags(strtolower($username)))); + $username = str_replace("\*", '%', trim(strip_tags(strtolower($username)))); if (false !== strpos($username, '%')) { $op = 'LIKE'; @@ -272,7 +272,7 @@ if (!isset($_REQUEST['dosearch'])) { $text = sprintf($lang['SEARCH_FOR_EMAIL'], strip_tags(htmlspecialchars(stripslashes($email)))); - $email = preg_replace('/\*/', '%', trim(strip_tags(strtolower($email)))); + $email = str_replace("\*", '%', trim(strip_tags(strtolower($email)))); if (false !== strpos($email, '%')) { $op = 'LIKE'; @@ -313,7 +313,7 @@ if (!isset($_REQUEST['dosearch'])) { $where_sql = ''; $where_sql .= ($ip_in_sql != '') ? "poster_ip IN ($ip_in_sql)" : ''; - $where_sql .= ($ip_like_sql != '') ? ($where_sql != '') ? " OR $ip_like_sql" : "$ip_like_sql" : ''; + $where_sql .= ($ip_like_sql != '') ? ($where_sql != '') ? " OR $ip_like_sql" : (string)$ip_like_sql : ''; if (!$where_sql) { bb_die('invalid request'); @@ -340,7 +340,7 @@ if (!isset($_REQUEST['dosearch'])) { } $where_sql = ''; $where_sql .= ($ip_in_sql != '') ? "user_last_ip IN ($ip_in_sql)" : ''; - $where_sql .= ($ip_like_sql_flylast != '') ? ($where_sql != '') ? " OR $ip_like_sql_flylast" : "$ip_like_sql_flylast" : ''; + $where_sql .= ($ip_like_sql_flylast != '') ? ($where_sql != '') ? " OR $ip_like_sql_flylast" : (string)$ip_like_sql_flylast : ''; $sql = 'SELECT user_id FROM ' . BB_USERS . ' WHERE user_id <> ' . GUEST_UID . " AND ($where_sql) GROUP BY user_id"; if (!$result = DB()->sql_query($sql)) { bb_die('Could not count users #2'); @@ -357,7 +357,7 @@ if (!isset($_REQUEST['dosearch'])) { } $where_sql = ''; $where_sql .= ($ip_in_sql != '') ? "user_reg_ip IN ($ip_in_sql)" : ''; - $where_sql .= ($ip_like_sql_flyreg != '') ? ($where_sql != '') ? " OR $ip_like_sql_flyreg" : "$ip_like_sql_flyreg" : ''; + $where_sql .= ($ip_like_sql_flyreg != '') ? ($where_sql != '') ? " OR $ip_like_sql_flyreg" : (string)$ip_like_sql_flyreg : ''; $sql = 'SELECT user_id FROM ' . BB_USERS . ' WHERE user_id <> ' . GUEST_UID . " AND ($where_sql) GROUP BY user_id"; if (!$result = DB()->sql_query($sql)) { bb_die('Could not count users #3'); @@ -567,7 +567,7 @@ if (!isset($_REQUEST['dosearch'])) { $text = strip_tags(htmlspecialchars(stripslashes($userfield_value))); - $userfield_value = preg_replace('/\*/', '%', trim(strip_tags(strtolower($userfield_value)))); + $userfield_value = str_replace("\*", '%', trim(strip_tags(strtolower($userfield_value)))); if (false !== strpos($userfield_value, '%')) { $op = 'LIKE'; diff --git a/admin/index.php b/admin/index.php index 3f15ddd0a..5100a6c03 100644 --- a/admin/index.php +++ b/admin/index.php @@ -34,7 +34,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') { ksort($module); foreach ($module as $cat => $action_array) { - $cat = (!empty($lang[$cat])) ? $lang[$cat] : preg_replace('/_/', ' ', $cat); + $cat = (!empty($lang[$cat])) ? $lang[$cat] : str_replace("_", ' ', $cat); $template->assign_block_vars('catrow', array( 'ADMIN_CATEGORY' => $cat, @@ -46,7 +46,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') { foreach ($action_array as $action => $file) { $row_class = !($row_count % 2) ? 'row1' : 'row2'; - $action = (!empty($lang[$action])) ? $lang[$action] : preg_replace('/_/', ' ', $action); + $action = (!empty($lang[$action])) ? $lang[$action] : str_replace("_", ' ', $action); $template->assign_block_vars('catrow.modulerow', array( 'ROW_CLASS' => $row_class, diff --git a/bt/announce.php b/bt/announce.php index 9c3a49a23..704da8b8d 100644 --- a/bt/announce.php +++ b/bt/announce.php @@ -20,7 +20,7 @@ if (empty($_SERVER['HTTP_USER_AGENT'])) { // Ignore 'completed' event if (isset($_GET['event']) && $_GET['event'] === 'completed') { - dummy_exit(mt_rand(600, 1200)); + dummy_exit(random_int(600, 1200)); } $announce_interval = $bb_cfg['announce_interval']; @@ -71,7 +71,7 @@ foreach ($input_vars_num as $var_name) { $$var_name = isset($_GET[$var_name]) ? (float)$_GET[$var_name] : null; } // Passkey -$passkey = isset($$passkey_key) ? $$passkey_key : null; +$passkey = $$passkey_key ?? null; // Verify request // Required params (info_hash, peer_id, port, uploaded, downloaded, left, passkey) diff --git a/common.php b/common.php index bec97a86d..f4f9ea4d2 100644 --- a/common.php +++ b/common.php @@ -248,7 +248,7 @@ function file_write($str, $file, $max_size = LOG_MAX_SIZE, $lock = true, $replac $old_name = $file; $ext = ''; if (preg_match('#^(.+)(\.[^\\\/]+)$#', $file, $matches)) { - list($old_name, $ext) = $matches; + [$old_name, $ext] = $matches; } $new_name = $old_name . '_[old]_' . date('Y-m-d_H-i-s_') . getmypid() . $ext; clearstatcache(); @@ -461,7 +461,7 @@ function log_request($file = '', $prepend_str = false, $add_post = true) if (!defined('IN_TRACKER')) { require INC_DIR . '/init_bb.php'; } else { - define('DUMMY_PEER', pack('Nn', ip2long($_SERVER['REMOTE_ADDR']), !empty($_GET['port']) ? (int)$_GET['port'] : mt_rand(1000, 65000))); + define('DUMMY_PEER', pack('Nn', ip2long($_SERVER['REMOTE_ADDR']), !empty($_GET['port']) ? (int)$_GET['port'] : random_int(1000, 65000))); function dummy_exit($interval = 1800) { @@ -480,7 +480,7 @@ if (!defined('IN_TRACKER')) { if (!defined('IN_ADMIN')) { // Exit if tracker is disabled via ON/OFF trigger if (file_exists(BB_DISABLED)) { - dummy_exit(mt_rand(60, 2400)); + dummy_exit(random_int(60, 2400)); } } } diff --git a/composer.json b/composer.json index de6ca9298..323dc5a2c 100644 --- a/composer.json +++ b/composer.json @@ -35,18 +35,20 @@ "docs": "https://docs.torrentpier.com/" }, "require": { - "php": "^5.6 || ^7.0", - "bugsnag/bugsnag": "^3.5", - "filp/whoops": "^2.1", - "gigablah/sphinxphp": "^2.0", - "google/recaptcha": "^1.1", - "longman/ip-tools": "^1.2", - "roave/security-advisories": "dev-master", - "rych/bencode": "^1.0", - "samdark/sitemap": "^2.0", - "swiftmailer/swiftmailer": "^5.4", - "symfony/dotenv": "^3.3", - "symfony/var-dumper": "^3.3" + "php": "^7.1.3", + "bugsnag/bugsnag": "3.13.0", + "filp/whoops": "^2.2.0", + "gigablah/sphinxphp": "2.0.8", + "google/recaptcha": "1.1.3", + "longman/ip-tools": "1.2.1", + "rych/bencode": "1.0.0", + "samdark/sitemap": "2.2.0", + "swiftmailer/swiftmailer": "6.0.2", + "symfony/dotenv": "4.1.0", + "symfony/var-dumper": "4.1.0" + }, + "require-dev": { + "roave/security-advisories": "dev-master" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock new file mode 100644 index 000000000..a507c8ad9 --- /dev/null +++ b/composer.lock @@ -0,0 +1,1304 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "d367e53f8e56b59ee06d21695adbd34d", + "packages": [ + { + "name": "bugsnag/bugsnag", + "version": "v3.13.0", + "source": { + "type": "git", + "url": "https://github.com/bugsnag/bugsnag-php.git", + "reference": "f07dfa792db5d28bf38fb9321aebe75d6b352fc5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bugsnag/bugsnag-php/zipball/f07dfa792db5d28bf38fb9321aebe75d6b352fc5", + "reference": "f07dfa792db5d28bf38fb9321aebe75d6b352fc5", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "guzzlehttp/guzzle": "^5.0|^6.0", + "php": ">=5.5" + }, + "require-dev": { + "graham-campbell/testbench-core": "^1.1", + "mockery/mockery": "^0.9.4|^1.0", + "mtdowling/burgomaster": "dev-master#72151eddf5f0cf101502b94bf5031f9c53501a04", + "php-mock/php-mock-phpunit": "^1.1", + "phpunit/phpunit": "^4.8|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.13-dev" + } + }, + "autoload": { + "psr-4": { + "Bugsnag\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "James Smith", + "email": "notifiers@bugsnag.com", + "homepage": "https://bugsnag.com" + } + ], + "description": "Official Bugsnag notifier for PHP applications.", + "homepage": "https://github.com/bugsnag/bugsnag-php", + "keywords": [ + "bugsnag", + "errors", + "exceptions", + "logging", + "tracking" + ], + "time": "2018-06-06T16:58:57+00:00" + }, + { + "name": "composer/ca-bundle", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "d2c0a83b7533d6912e8d516756ebd34f893e9169" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/d2c0a83b7533d6912e8d516756ebd34f893e9169", + "reference": "d2c0a83b7533d6912e8d516756ebd34f893e9169", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5", + "psr/log": "^1.0", + "symfony/process": "^2.5 || ^3.0 || ^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "time": "2018-03-29T19:57:20+00:00" + }, + { + "name": "doctrine/lexer", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Lexer\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "lexer", + "parser" + ], + "time": "2014-09-09T13:34:57+00:00" + }, + { + "name": "egulias/email-validator", + "version": "2.1.4", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "8790f594151ca6a2010c6218e09d96df67173ad3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/8790f594151ca6a2010c6218e09d96df67173ad3", + "reference": "8790f594151ca6a2010c6218e09d96df67173ad3", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.0.1", + "php": ">= 5.5" + }, + "require-dev": { + "dominicsayers/isemail": "dev-master", + "phpunit/phpunit": "^4.8.35||^5.7||^6.0", + "satooshi/php-coveralls": "^1.0.1" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "EmailValidator" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "time": "2018-04-10T10:11:19+00:00" + }, + { + "name": "filp/whoops", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "181c4502d8f34db7aed7bfe88d4f87875b8e947a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/181c4502d8f34db7aed7bfe88d4f87875b8e947a", + "reference": "181c4502d8f34db7aed7bfe88d4f87875b8e947a", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0", + "psr/log": "^1.0.1" + }, + "require-dev": { + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.35 || ^5.7", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "time": "2018-03-03T17:56:25+00:00" + }, + { + "name": "gigablah/sphinxphp", + "version": "2.0.8", + "source": { + "type": "git", + "url": "https://github.com/gigablah/sphinxphp.git", + "reference": "6d5e97fdd33c1129ca372203d1330827c1cbc46c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/gigablah/sphinxphp/zipball/6d5e97fdd33c1129ca372203d1330827c1cbc46c", + "reference": "6d5e97fdd33c1129ca372203d1330827c1cbc46c", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*", + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Sphinx": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0" + ], + "authors": [ + { + "name": "Andrew Aksyonoff", + "homepage": "http://sphinxsearch.com/" + } + ], + "description": "Sphinx Search PHP API", + "homepage": "http://sphinxsearch.com/", + "keywords": [ + "api", + "search", + "sphinx" + ], + "time": "2013-08-22T08:05:44+00:00" + }, + { + "name": "google/recaptcha", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/google/recaptcha.git", + "reference": "5a56d15ca10a7b75158178752b2ad8f755eb4f78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/google/recaptcha/zipball/5a56d15ca10a7b75158178752b2ad8f755eb4f78", + "reference": "5a56d15ca10a7b75158178752b2ad8f755eb4f78", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "ReCaptcha\\": "src/ReCaptcha" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Client library for reCAPTCHA, a free service that protect websites from spam and abuse.", + "homepage": "http://www.google.com/recaptcha/", + "keywords": [ + "Abuse", + "captcha", + "recaptcha", + "spam" + ], + "time": "2017-03-09T18:44:34+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.3.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "shasum": "" + }, + "require": { + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.4", + "php": ">=5.5" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.0" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.3-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2018-04-22T15:46:56+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "v1.3.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "shasum": "" + }, + "require": { + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "time": "2016-12-20T10:07:11+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "request", + "response", + "stream", + "uri", + "url" + ], + "time": "2017-03-20T17:10:46+00:00" + }, + { + "name": "longman/ip-tools", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/akalongman/php-ip-tools.git", + "reference": "6c050dfbf91811d14b9b3aa31fb7116eac0f0a18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/akalongman/php-ip-tools/zipball/6c050dfbf91811d14b9b3aa31fb7116eac0f0a18", + "reference": "6c050dfbf91811d14b9b3aa31fb7116eac0f0a18", + "shasum": "" + }, + "require": { + "ext-bcmath": "*", + "php": ">=5.5" + }, + "require-dev": { + "phpspec/phpspec": "~2.1", + "phpunit/phpunit": "~4.1", + "squizlabs/php_codesniffer": "~2.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Longman\\IPTools\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Avtandil Kikabidze aka LONGMAN", + "email": "akalongman@gmail.com", + "homepage": "https://longman.me", + "role": "Developer" + } + ], + "description": "PHP IP Tools for manipulation with IPv4 and IPv6", + "homepage": "https://github.com/akalongman/php-ip-tools", + "keywords": [ + "IP", + "Match", + "compare", + "ipv4", + "ipv6", + "mask", + "subnet", + "tools", + "utilities" + ], + "time": "2016-10-23T20:08:46+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10T12:19:37+00:00" + }, + { + "name": "rych/bencode", + "version": "v1.0.0", + "target-dir": "Rych/Bencode", + "source": { + "type": "git", + "url": "https://github.com/rchouinard/bencode.git", + "reference": "d1b5c88f3fd7ff1f4167756f0ed63f970a32431c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rchouinard/bencode/zipball/d1b5c88f3fd7ff1f4167756f0ed63f970a32431c", + "reference": "d1b5c88f3fd7ff1f4167756f0ed63f970a32431c", + "shasum": "" + }, + "require": { + "php": ">=5.3.4" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Rych\\Bencode": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ryan Chouinard", + "email": "rchouinard@gmail.com", + "homepage": "http://ryanchouinard.com" + } + ], + "description": "Bencode serializer for PHP 5.3+", + "homepage": "https://github.com/rchouinard/bencode", + "keywords": [ + "bencode", + "serialize" + ], + "time": "2014-01-13T00:34:03+00:00" + }, + { + "name": "samdark/sitemap", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/samdark/sitemap.git", + "reference": "c897f7a9cb0882e34169359a5f1f715e05b34d67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/samdark/sitemap/zipball/c897f7a9cb0882e34169359a5f1f715e05b34d67", + "reference": "c897f7a9cb0882e34169359a5f1f715e05b34d67", + "shasum": "" + }, + "require": { + "ext-xmlwriter": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "samdark\\sitemap\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Alexander Makarov", + "email": "sam@rmcreative.ru", + "homepage": "http://rmcreative.ru/" + } + ], + "description": "Sitemap and sitemap index builder", + "homepage": "https://github.com/samdark/sitemap", + "keywords": [ + "Sitemap" + ], + "time": "2018-02-02T09:27:13+00:00" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v6.0.2", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/412333372fb6c8ffb65496a2bbd7321af75733fc", + "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc", + "shasum": "" + }, + "require": { + "egulias/email-validator": "~2.0", + "php": ">=7.0.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.1", + "symfony/phpunit-bridge": "~3.3@dev" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.0-dev" + } + }, + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "http://swiftmailer.symfony.com", + "keywords": [ + "email", + "mail", + "mailer" + ], + "time": "2017-09-30T22:39:41+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v4.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "f98b6b65e04dd51f40d2cfc81c2c833ff3773b1e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/f98b6b65e04dd51f40d2cfc81c2c833ff3773b1e", + "reference": "f98b6b65e04dd51f40d2cfc81c2c833ff3773b1e", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "symfony/process": "~3.4|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "time": "2018-05-30T07:26:09+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "3296adf6a6454a050679cde90f95350ad604b171" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", + "reference": "3296adf6a6454a050679cde90f95350ad604b171", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2018-04-26T10:06:28+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "a4576e282d782ad82397f3e4ec1df8e0f0cafb46" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/a4576e282d782ad82397f3e4ec1df8e0f0cafb46", + "reference": "a4576e282d782ad82397f3e4ec1df8e0f0cafb46", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2018-04-26T10:06:28+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "bc88ad53e825ebacc7b190bbd360781fce381c64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/bc88ad53e825ebacc7b190bbd360781fce381c64", + "reference": "bc88ad53e825ebacc7b190bbd360781fce381c64", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/process": "~3.4|~4.0", + "twig/twig": "~1.34|~2.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2018-04-29T07:56:09+00:00" + } + ], + "packages-dev": [ + { + "name": "roave/security-advisories", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/Roave/SecurityAdvisories.git", + "reference": "0e4ea9f9e1fd3c6a563524f8f399696d98c7c85a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0e4ea9f9e1fd3c6a563524f8f399696d98c7c85a", + "reference": "0e4ea9f9e1fd3c6a563524f8f399696d98c7c85a", + "shasum": "" + }, + "conflict": { + "3f/pygmentize": "<1.2", + "adodb/adodb-php": "<5.20.12", + "amphp/artax": "<1.0.6|>=2,<2.0.6", + "amphp/http": "<1.0.1", + "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", + "aws/aws-sdk-php": ">=3,<3.2.1", + "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.0.15|>=3.1,<3.1.4|>=3.4,<3.4.14|>=3.5,<3.5.17|>=3.6,<3.6.4", + "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", + "cartalyst/sentry": "<=2.1.6", + "codeigniter/framework": "<=3.0.6", + "composer/composer": "<=1.0.0-alpha11", + "contao-components/mediaelement": ">=2.14.2,<2.21.1", + "contao/core": ">=2,<3.5.35", + "contao/core-bundle": ">=4,<4.4.18|>=4.5,<4.5.8", + "contao/listing-bundle": ">=4,<4.4.8", + "contao/newsletter-bundle": ">=4,<4.1", + "doctrine/annotations": ">=1,<1.2.7", + "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", + "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1", + "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2", + "doctrine/doctrine-bundle": "<1.5.2", + "doctrine/doctrine-module": "<=0.7.1", + "doctrine/mongodb-odm": ">=1,<1.0.2", + "doctrine/mongodb-odm-bundle": ">=2,<3.0.1", + "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1", + "dompdf/dompdf": ">=0.6,<0.6.2", + "drupal/core": ">=7,<7.59|>=8,<8.4.8|>=8.5,<8.5.3", + "drupal/drupal": ">=7,<7.59|>=8,<8.4.8|>=8.5,<8.5.3", + "erusev/parsedown": "<1.7", + "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.3|>=5.4,<5.4.11.3|>=2017.8,<2017.8.1.1|>=2017.12,<2017.12.2.1", + "firebase/php-jwt": "<2", + "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", + "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", + "fuel/core": "<1.8.1", + "gree/jose": "<=2.2", + "gregwar/rst": "<1.0.3", + "guzzlehttp/guzzle": ">=6,<6.2.1|>=4.0.0-rc2,<4.2.4|>=5,<5.3.1", + "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", + "illuminate/database": ">=4,<4.0.99|>=4.1,<4.1.29", + "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", + "joomla/session": "<1.3.1", + "kreait/firebase-php": ">=3.2,<3.8.1", + "laravel/framework": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", + "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", + "magento/magento1ce": ">=1.5.0.1,<1.9.3.2", + "magento/magento1ee": ">=1.9,<1.14.3.2", + "magento/magento2ce": ">=2,<2.2", + "monolog/monolog": ">=1.8,<1.12", + "namshi/jose": "<2.2", + "onelogin/php-saml": "<2.10.4", + "oro/crm": ">=1.7,<1.7.4", + "oro/platform": ">=1.7,<1.7.4", + "padraic/humbug_get_contents": "<1.1.2", + "pagarme/pagarme-php": ">=0,<3", + "paragonie/random_compat": "<2", + "paypal/merchant-sdk-php": "<3.12", + "phpmailer/phpmailer": ">=5,<5.2.24", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpxmlrpc/extras": "<0.6.1", + "propel/propel": ">=2.0.0-alpha1,<=2.0.0-alpha7", + "propel/propel1": ">=1,<=1.7.1", + "pusher/pusher-php-server": "<2.2.1", + "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9", + "sensiolabs/connect": "<4.2.3", + "shopware/shopware": "<5.3.7", + "silverstripe/cms": ">=3,<=3.0.11|>=3.1,<3.1.11", + "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", + "silverstripe/framework": ">=3,<3.3", + "silverstripe/userforms": "<3", + "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4", + "simplesamlphp/simplesamlphp": "<1.15.2", + "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", + "slim/slim": "<2.6", + "socalnick/scn-social-auth": "<1.15.2", + "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", + "stormpath/sdk": ">=0,<9.9.99", + "swiftmailer/swiftmailer": ">=4,<5.4.5", + "symfony/dependency-injection": ">=2,<2.0.17", + "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2", + "symfony/http-foundation": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/http-kernel": ">=2,<2.3.29|>=2.4,<2.5.12|>=2.6,<2.6.8", + "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/routing": ">=2,<2.0.19", + "symfony/security": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-bundle": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.37|>=3,<3.3.17|>=3.4,<3.4.7|>=4,<4.0.7", + "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-guard": ">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/serializer": ">=2,<2.0.11", + "symfony/symfony": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/translation": ">=2,<2.0.17", + "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", + "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", + "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", + "thelia/backoffice-default-template": ">=2.1,<2.1.2", + "thelia/thelia": ">=2.1,<2.1.2|>=2.1.0-beta1,<2.1.3", + "titon/framework": ">=0,<9.9.99", + "twig/twig": "<1.20", + "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.22|>=8,<8.7.5", + "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.5", + "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4", + "willdurand/js-translation-bundle": "<2.1.1", + "yiisoft/yii": ">=1.1.14,<1.1.15", + "yiisoft/yii2": "<2.0.15", + "yiisoft/yii2-bootstrap": "<2.0.4", + "yiisoft/yii2-dev": "<2.0.15", + "yiisoft/yii2-elasticsearch": "<2.0.5", + "yiisoft/yii2-gii": "<2.0.4", + "yiisoft/yii2-jui": "<2.0.4", + "yiisoft/yii2-redis": "<2.0.8", + "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", + "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", + "zendframework/zend-diactoros": ">=1,<1.0.4", + "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-http": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.3,<2.3.8|>=2.4,<2.4.1", + "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", + "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", + "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4", + "zendframework/zend-validator": ">=2.3,<2.3.6", + "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zendframework": ">=2,<2.4.11|>=2.5,<2.5.1", + "zendframework/zendframework1": "<1.12.20", + "zendframework/zendopenid": ">=2,<2.0.2", + "zendframework/zendxml": ">=1,<1.0.1", + "zetacomponents/mail": "<1.8.2", + "zf-commons/zfc-user": "<1.2.2", + "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", + "zfr/zfr-oauth2-server-module": "<0.1.2" + }, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "role": "maintainer" + } + ], + "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "time": "2018-06-08T09:55:50+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "roave/security-advisories": 20 + }, + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^7.1.3" + }, + "platform-dev": [] +} diff --git a/dl.php b/dl.php index 6dfec78b2..d165c6273 100644 --- a/dl.php +++ b/dl.php @@ -128,7 +128,6 @@ for ($i = 0; $i < $num_auth_pages && $authorised == false; $i++) { $topic_id = $row['topic_id']; $forum_id = $row['forum_id']; - $is_auth = array(); $is_auth = auth(AUTH_ALL, $forum_id, $userdata); set_die_append_msg($forum_id, $topic_id); @@ -181,27 +180,27 @@ if ($download_mode == PHYSICAL_LINK) { $url = make_url($upload_dir . '/' . $attachment['physical_filename']); header('Location: ' . $url); exit; -} else { - if (IS_GUEST && !bb_captcha('check')) { - global $template; - - $redirect_url = isset($_POST['redirect_url']) ? $_POST['redirect_url'] : (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '/'); - $message = '
'; - $message .= $lang['CAPTCHA'] . ':'; - $message .= '
' . bb_captcha('get') . '
'; - $message .= ''; - $message .= '  '; - $message .= ''; - $message .= '
'; - - $template->assign_vars(array( - 'ERROR_MESSAGE' => $message, - )); - - require(PAGE_HEADER); - require(PAGE_FOOTER); - } - - send_file_to_browser($attachment, $upload_dir); - exit; } + +if (IS_GUEST && !bb_captcha('check')) { + global $template; + + $redirect_url = $_POST['redirect_url'] ?? $_SERVER['HTTP_REFERER'] ?? '/'; + $message = '
'; + $message .= $lang['CAPTCHA'] . ':'; + $message .= '
' . bb_captcha('get') . '
'; + $message .= ''; + $message .= '  '; + $message .= ''; + $message .= '
'; + + $template->assign_vars(array( + 'ERROR_MESSAGE' => $message, + )); + + require(PAGE_HEADER); + require(PAGE_FOOTER); +} + +send_file_to_browser($attachment, $upload_dir); +exit; diff --git a/feed.php b/feed.php index dd12cd095..ae6cac314 100644 --- a/feed.php +++ b/feed.php @@ -13,9 +13,9 @@ require __DIR__ . '/common.php'; $user->session_start(array('req_login' => true)); -$mode = isset($_REQUEST['mode']) ? $_REQUEST['mode'] : ''; -$type = isset($_POST['type']) ? $_POST['type'] : ''; -$id = isset($_POST['id']) ? $_POST['id'] : 0; +$mode = $_REQUEST['mode'] ?? ''; +$type = $_POST['type'] ?? ''; +$id = $_POST['id'] ?? 0; $timecheck = TIMENOW - 600; if (!$mode) { diff --git a/group.php b/group.php index 81dfb7d15..d60cab345 100644 --- a/group.php +++ b/group.php @@ -40,8 +40,6 @@ function generate_user_info(&$row, $date_format, $group_mod, &$from, &$posts, &$ } else { $www = ''; } - - return; } $user->session_start(array('req_login' => true)); diff --git a/index.php b/index.php index f0f695021..b737b60b2 100644 --- a/index.php +++ b/index.php @@ -238,7 +238,7 @@ foreach ($cat_forums as $cid => $c) { 'FORUM_DESC' => $f['forum_desc'], 'POSTS' => commify($f['forum_posts']), 'TOPICS' => commify($f['forum_topics']), - 'LAST_SF_ID' => isset($f['last_sf_id']) ? $f['last_sf_id'] : null, + 'LAST_SF_ID' => $f['last_sf_id'] ?? null, 'MODERATORS' => isset($moderators[$fid]) ? implode(', ', $moderators[$fid]) : '', 'FORUM_FOLDER_ALT' => ($new) ? $lang['NEW'] : $lang['OLD'], )); diff --git a/library/ajax/edit_user_profile.php b/library/ajax/edit_user_profile.php index 62f0f8702..a2d5b74b8 100644 --- a/library/ajax/edit_user_profile.php +++ b/library/ajax/edit_user_profile.php @@ -128,7 +128,7 @@ switch ($field) { foreach (array('KB' => 1, 'MB' => 2, 'GB' => 3, 'TB' => 4) as $s => $m) { if (strpos($this->request['value'], $s) !== false) { - $value *= pow(1024, $m); + $value *= (1024 ** $m); break; } } diff --git a/library/ajax/manage_admin.php b/library/ajax/manage_admin.php index 5b5d04691..53599da40 100644 --- a/library/ajax/manage_admin.php +++ b/library/ajax/manage_admin.php @@ -47,7 +47,7 @@ switch ($mode) { $dir = $template->cachedir; $res = @opendir($dir); while (($file = readdir($res)) !== false) { - if (substr($file, 0, $match_len) === $match) { + if (0 === strpos($file, $match)) { @unlink($dir . $file); } } diff --git a/library/attach_mod/attachment_mod.php b/library/attach_mod/attachment_mod.php index d3f812b43..3ad95593d 100644 --- a/library/attach_mod/attachment_mod.php +++ b/library/attach_mod/attachment_mod.php @@ -31,11 +31,11 @@ function attach_mod_get_lang($language_file) $file = LANG_ROOT_DIR . '/' . $bb_cfg['default_lang'] . '/' . $language_file . '.php'; if (file_exists($file)) { return $bb_cfg['default_lang']; - } else { - $file = LANG_ROOT_DIR . '/' . $attach_config['board_lang'] . '/' . $language_file . '.php'; - if (file_exists($file)) { - return $attach_config['board_lang']; - } + } + + $file = LANG_ROOT_DIR . '/' . $attach_config['board_lang'] . '/' . $language_file . '.php'; + if (file_exists($file)) { + return $attach_config['board_lang']; } bb_die('Attachment mod language file does not exist: language/' . $attach_config['board_lang'] . '/' . $language_file . '.php'); diff --git a/library/attach_mod/displaying.php b/library/attach_mod/displaying.php index 10e0db8a2..85c5789f0 100644 --- a/library/attach_mod/displaying.php +++ b/library/attach_mod/displaying.php @@ -25,7 +25,7 @@ function init_complete_extensions_data() global $allowed_extensions, $display_categories, $download_modes, $upload_icons; if (!$extension_informations = get_extension_informations()) { - $extension_informations = $GLOBALS['datastore']->update('attach_extensions'); //get_extension_informations() + $GLOBALS['datastore']->update('attach_extensions'); $extension_informations = get_extension_informations(); } $allowed_extensions = array(); @@ -213,7 +213,7 @@ function display_attachments($post_id) if (@(int)$display_categories[$attachments['_' . $post_id][$i]['extension']] == IMAGE_CAT && (int)$attach_config['img_display_inlined']) { if ((int)$attach_config['img_link_width'] != 0 || (int)$attach_config['img_link_height'] != 0) { - list($width, $height) = image_getdimension($filename); + [$width, $height] = image_getdimension($filename); if ($width == 0 && $height == 0) { $image = true; diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 58b907d80..d6d19c440 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -40,7 +40,7 @@ $template->assign_vars(array( // Define show peers mode (count only || user names with complete % || full details) $cfg_sp_mode = $bb_cfg['bt_show_peers_mode']; -$get_sp_mode = (isset($_GET['spmode'])) ? $_GET['spmode'] : ''; +$get_sp_mode = $_GET['spmode'] ?? ''; $s_mode = 'count'; @@ -167,14 +167,14 @@ if ($tor_reged && $tor_info) { $bt_userdata = DB()->fetch_row($sql); - $user_status = isset($bt_userdata['user_status']) ? $bt_userdata['user_status'] : null; + $user_status = $bt_userdata['user_status'] ?? null; if (($min_ratio_dl || $min_ratio_warn) && $user_status != DL_STATUS_COMPLETE && $bt_user_id != $poster_id && $tor_type != TOR_TYPE_GOLD) { if (($user_ratio = get_bt_ratio($bt_userdata)) !== null) { $dl_allowed = ($user_ratio > $min_ratio_dl); } - if ((isset($user_ratio) && isset($min_ratio_warn) && $user_ratio < $min_ratio_warn && TR_RATING_LIMITS) || ($bt_userdata['u_down_total'] < MIN_DL_FOR_RATIO)) { + if ((isset($user_ratio, $min_ratio_warn) && $user_ratio < $min_ratio_warn && TR_RATING_LIMITS) || ($bt_userdata['u_down_total'] < MIN_DL_FOR_RATIO)) { $template->assign_vars(array( 'SHOW_RATIO_WARN' => true, 'RATIO_WARN_MSG' => sprintf($lang['BT_RATIO_WARNING_MSG'], $min_ratio_dl, $bb_cfg['ratio_url_help']), @@ -384,7 +384,7 @@ if ($tor_reged && $tor_info) { define('SEEDER_EXIST', true); $seed_order_action = "viewtopic.php?" . POST_TOPIC_URL . "=$bt_topic_id&spmode=full#seeders"; - $template->assign_block_vars("$x_full", array( + $template->assign_block_vars((string)$x_full, array( 'SEED_ORD_ACT' => $seed_order_action, 'SEEDERS_UP_TOT' => humn_size($sp_up_tot[$x], 0, 'KB') . '/s' )); @@ -406,7 +406,7 @@ if ($tor_reged && $tor_info) { define('LEECHER_EXIST', true); $leech_order_action = "viewtopic.php?" . POST_TOPIC_URL . "=$bt_topic_id&spmode=full#leechers"; - $template->assign_block_vars("$x_full", array( + $template->assign_block_vars((string)$x_full, array( 'LEECH_ORD_ACT' => $leech_order_action, 'LEECHERS_UP_TOT' => humn_size($sp_up_tot[$x], 0, 'KB') . '/s', 'LEECHERS_DOWN_TOT' => humn_size($sp_down_tot[$x], 0, 'KB') . '/s' diff --git a/library/attach_mod/includes/functions_admin.php b/library/attach_mod/includes/functions_admin.php index 931da93b6..ec8e8a2df 100644 --- a/library/attach_mod/includes/functions_admin.php +++ b/library/attach_mod/includes/functions_admin.php @@ -101,7 +101,7 @@ function sort_multi_array($sort_array, $key, $sort_order, $pre_string_sort = 0) for ($i = 0; $i < $last_element; $i++) { $num_iterations = $last_element - $i; - for ($j = 0; $j < $num_iterations; $j++) { + foreach ($sort_array as $j => $jValue) { // do checks based on key $switch = false; if (!$string_sort) { @@ -117,7 +117,7 @@ function sort_multi_array($sort_array, $key, $sort_order, $pre_string_sort = 0) } if ($switch) { - $temp = $sort_array[$j]; + $temp = $jValue; $sort_array[$j] = $sort_array[$j + 1]; $sort_array[$j + 1] = $temp; } diff --git a/library/attach_mod/includes/functions_attach.php b/library/attach_mod/includes/functions_attach.php index 40f407bd9..daf1cb0d8 100644 --- a/library/attach_mod/includes/functions_attach.php +++ b/library/attach_mod/includes/functions_attach.php @@ -68,7 +68,7 @@ function base64_unpack($string) for ($i = 1; $i <= $length; $i++) { $pos = $length - $i; $operand = strpos($chars, $string[$pos]); - $exponent = pow($base, $i - 1); + $exponent = $base ** ($i - 1); $decValue = $operand * $exponent; $number += $decValue; } @@ -87,7 +87,7 @@ function auth_pack($auth_array) $one_char = $two_char = false; $auth_cache = ''; - for ($i = 0, $iMax = count($auth_array); $i < $iMax; $i++) { + foreach ($auth_array as $i => $iValue) { $val = base64_pack((int)$auth_array[$i]); if (strlen($val) == 1 && !$one_char) { $auth_cache .= $one_char_encoding; @@ -114,7 +114,7 @@ function auth_unpack($auth_cache) $auth = []; $auth_len = 1; - for ($pos = 0; $pos < strlen($auth_cache); $pos += $auth_len) { + for ($pos = 0, $posMax = strlen($auth_cache); $pos < $posMax; $pos += $auth_len) { $forum_auth = $auth_cache[$pos]; if ($forum_auth == $one_char_encoding) { $auth_len = 1; @@ -149,7 +149,7 @@ function is_forum_authed($auth_cache, $check_forum_id) $auth = []; $auth_len = 1; - for ($pos = 0; $pos < strlen($auth_cache); $pos += $auth_len) { + for ($pos = 0, $posMax = strlen($auth_cache); $pos < $posMax; $pos += $auth_len) { $forum_auth = $auth_cache[$pos]; if ($forum_auth == $one_char_encoding) { $auth_len = 1; @@ -266,7 +266,7 @@ function get_attachments_from_post($post_id_array) $post_id_array[] = $post_id; } - $post_id_array = implode(', ', array_map('intval', $post_id_array)); + $post_id_array = implode(', ', array_map('\intval', $post_id_array)); if ($post_id_array == '') { return $attachments; @@ -304,7 +304,7 @@ function get_total_attach_filesize($attach_ids) return 0; } - $attach_ids = implode(', ', array_map('intval', $attach_ids)); + $attach_ids = implode(', ', array_map('\intval', $attach_ids)); if (!$attach_ids) { return 0; @@ -412,7 +412,7 @@ function get_extension($filename) */ function delete_extension($filename) { - return substr($filename, 0, strrpos(strtolower(trim($filename)), '.')); + return substr($filename, 0, strripos(trim($filename), '.')); } /** @@ -535,7 +535,7 @@ function attach_mod_sql_escape($text) return DB()->escape_string($text); } - return str_replace("'", "''", str_replace('\\', '\\\\', $text)); + return str_replace(['\\', "'"], ['\\\\', "''"], $text); } /** diff --git a/library/attach_mod/includes/functions_delete.php b/library/attach_mod/includes/functions_delete.php index 03fc2fad5..07771dff1 100644 --- a/library/attach_mod/includes/functions_delete.php +++ b/library/attach_mod/includes/functions_delete.php @@ -27,7 +27,7 @@ function delete_attachment($post_id_array = 0, $attach_id_array = 0, $page = 0, if (!is_array($attach_id_array)) { if (false !== strpos($attach_id_array, ', ')) { $attach_id_array = explode(', ', $attach_id_array); - } elseif (strstr($attach_id_array, ',')) { + } elseif (false !== strpos($attach_id_array, ',')) { $attach_id_array = explode(',', $attach_id_array); } else { $attach_id = (int)$attach_id_array; @@ -68,7 +68,7 @@ function delete_attachment($post_id_array = 0, $attach_id_array = 0, $page = 0, if (false !== strpos($post_id_array, ', ')) { $post_id_array = explode(', ', $post_id_array); - } elseif (strstr($post_id_array, ',')) { + } elseif (false !== strpos($post_id_array, ',')) { $post_id_array = explode(',', $post_id_array); } else { $post_id = (int)$post_id_array; @@ -113,7 +113,7 @@ function delete_attachment($post_id_array = 0, $attach_id_array = 0, $page = 0, if (!is_array($attach_id_array)) { if (false !== strpos($attach_id_array, ', ')) { $attach_id_array = explode(', ', $attach_id_array); - } elseif (strstr($attach_id_array, ',')) { + } elseif (false !== strpos($attach_id_array, ',')) { $attach_id_array = explode(',', $attach_id_array); } else { $attach_id = (int)$attach_id_array; @@ -171,7 +171,7 @@ function delete_attachment($post_id_array = 0, $attach_id_array = 0, $page = 0, } //bt end - for ($i = 0, $iMax = count($attach_id_array); $i < $iMax; $i++) { + foreach ($attach_id_array as $i => $iValue) { $sql = 'SELECT attach_id FROM ' . BB_ATTACHMENTS . ' WHERE attach_id = ' . (int)$attach_id_array[$i]; diff --git a/library/attach_mod/includes/functions_selects.php b/library/attach_mod/includes/functions_selects.php index a6ff64f55..aabee8713 100644 --- a/library/attach_mod/includes/functions_selects.php +++ b/library/attach_mod/includes/functions_selects.php @@ -188,7 +188,7 @@ function quota_limit_select($select_name, $default_quota = 0) } DB()->sql_freeresult($result); - for ($i = 0, $iMax = count($quota_name); $i < $iMax; $i++) { + foreach ($quota_name as $i => $iValue) { $selected = ($quota_name[$i]['quota_limit_id'] == $default_quota) ? ' selected="selected"' : ''; $quota_select .= ''; } @@ -219,7 +219,7 @@ function default_quota_limit_select($select_name, $default_quota = 0) } DB()->sql_freeresult($result); - for ($i = 0, $iMax = count($quota_name); $i < $iMax; $i++) { + foreach ($quota_name as $i => $iValue) { $selected = ($quota_name[$i]['quota_limit_id'] == $default_quota) ? ' selected="selected"' : ''; $quota_select .= ''; } diff --git a/library/attach_mod/includes/functions_thumbs.php b/library/attach_mod/includes/functions_thumbs.php index c5d612189..5700ae66e 100644 --- a/library/attach_mod/includes/functions_thumbs.php +++ b/library/attach_mod/includes/functions_thumbs.php @@ -26,12 +26,12 @@ function get_img_size_format($width, $height) round($width * ($max_width / $width)), round($height * ($max_width / $width)) ); - } else { - return array( - round($width * ($max_width / $height)), - round($height * ($max_width / $height)) - ); } + + return array( + round($width * ($max_width / $height)), + round($height * ($max_width / $height)) + ); } /** @@ -44,9 +44,9 @@ function is_imagick() if ($attach_config['img_imagick'] != '') { $imagick = $attach_config['img_imagick']; return true; - } else { - return false; } + + return false; } /** @@ -103,15 +103,13 @@ function create_thumbnail($source, $new_file, $mimetype) return false; } - list($width, $height, $type, ) = getimagesize($source); + [$width, $height, $type,] = getimagesize($source); if (!$width || !$height) { return false; } - list($new_width, $new_height) = get_img_size_format($width, $height); - - $tmp_path = $old_file = ''; + [$new_width, $new_height] = get_img_size_format($width, $height); $used_imagick = false; diff --git a/library/config.php b/library/config.php index 708d011d2..0324a018e 100644 --- a/library/config.php +++ b/library/config.php @@ -456,7 +456,7 @@ $bb_cfg['use_ajax_posts'] = true; $bb_cfg['search_engine_type'] = 'mysql'; // none, mysql, sphinx $bb_cfg['sphinx_topic_titles_host'] = '127.0.0.1'; $bb_cfg['sphinx_topic_titles_port'] = 3312; -$bb_cfg['sphinx_config_path'] = realpath("../install/sphinx/sphinx.conf"); +$bb_cfg['sphinx_config_path'] = '../install/sphinx/sphinx.conf'; $bb_cfg['disable_ft_search_in_posts'] = false; // disable searching in post bodies $bb_cfg['disable_search_for_guest'] = true; $bb_cfg['allow_search_in_bool_mode'] = true; diff --git a/library/includes/bbcode.php b/library/includes/bbcode.php index ab392026b..a0d3ea9a6 100644 --- a/library/includes/bbcode.php +++ b/library/includes/bbcode.php @@ -200,7 +200,7 @@ function strip_quotes($text) do { $pos = strpos($lowertext, '[quote', $curpos); if ($pos !== false) { - $start_pos["$pos"] = 'start'; + $start_pos[(string)$pos] = 'start'; $curpos = $pos + 6; } } while ($pos !== false); @@ -215,7 +215,7 @@ function strip_quotes($text) do { $pos = strpos($lowertext, '[/quote', $curpos); if ($pos !== false) { - $end_pos["$pos"] = 'end'; + $end_pos[(string)$pos] = 'end'; $curpos = $pos + 8; } } while ($pos !== false); @@ -259,7 +259,7 @@ function strip_quotes($text) // recursion. if ($stack) { foreach ($stack as $pos) { - unset($pos_list["$pos"]); + unset($pos_list[(string)$pos]); } } } while ($stack); @@ -338,9 +338,7 @@ function extract_search_words($text) $text = preg_replace('/(\w*?)&#?[0-9a-z]+;(\w*?)/iu', '', $text); // Remove URL's ((www|ftp)\.[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]*?) $text = preg_replace('#\b[a-z0-9]+://[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]+(/[0-9a-z\?\.%_\-\+=&/]+)?#u', ' ', $text); - $text = str_replace('[url=', ' ', $text); - $text = str_replace('?', ' ', $text); - $text = str_replace('!', ' ', $text); + $text = str_replace(['[url=', '?', '!'], ' ', $text); $text = strip_bbcode($text); diff --git a/library/includes/functions.php b/library/includes/functions.php index 21b5f5f2d..9c153ae62 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -14,21 +14,21 @@ if (!defined('BB_ROOT')) { function get_path_from_id($id, $ext_id, $base_path, $first_div, $sec_div) { global $bb_cfg; - $ext = isset($bb_cfg['file_id_ext'][$ext_id]) ? $bb_cfg['file_id_ext'][$ext_id] : ''; + $ext = $bb_cfg['file_id_ext'][$ext_id] ?? ''; return ($base_path ? "$base_path/" : '') . floor($id / $first_div) . '/' . ($id % $sec_div) . '/' . $id . ($ext ? ".$ext" : ''); } function get_avatar_path($id, $ext_id, $base_path = null, $first_div = 10000, $sec_div = 100) { global $bb_cfg; - $base_path = isset($base_path) ? $base_path : $bb_cfg['avatars']['upload_path']; + $base_path = $base_path ?? $bb_cfg['avatars']['upload_path']; return get_path_from_id($id, $ext_id, $base_path, $first_div, $sec_div); } function get_attach_path($id, $ext_id = '', $base_path = null, $first_div = 10000, $sec_div = 100) { global $bb_cfg; - $base_path = isset($base_path) ? $base_path : $bb_cfg['attach']['upload_path']; + $base_path = $base_path ?? $bb_cfg['attach']['upload_path']; return get_path_from_id($id, $ext_id, $base_path, $first_div, $sec_div); } @@ -104,8 +104,8 @@ function get_last_read($topic_id = 0, $forum_id = 0) { global $tracking_topics, $tracking_forums, $user; - $t = isset($tracking_topics[$topic_id]) ? $tracking_topics[$topic_id] : 0; - $f = isset($tracking_forums[$forum_id]) ? $tracking_forums[$forum_id] : 0; + $t = $tracking_topics[$topic_id] ?? 0; + $f = $tracking_forums[$forum_id] ?? 0; return max($t, $f, $user->data['user_lastvisit']); } @@ -587,9 +587,9 @@ function bt_show_ip($ip, $port = '') $ip = decode_ip($ip); $ip .= ($port) ? ":$port" : ''; return $ip; - } else { - return ($bb_cfg['bt_show_ip_only_moder']) ? false : decode_ip_xx($ip); } + + return ($bb_cfg['bt_show_ip_only_moder']) ? false : decode_ip_xx($ip); } function bt_show_port($port) @@ -598,9 +598,9 @@ function bt_show_port($port) if (IS_AM) { return $port; - } else { - return ($bb_cfg['bt_show_port_only_moder']) ? false : $port; } + + return ($bb_cfg['bt_show_port_only_moder']) ? false : $port; } function decode_ip_xx($ip) @@ -678,7 +678,7 @@ function request_var($var_name, $default, $multibyte = false, $cookie = false) if (!isset($_GET[$var_name]) && !isset($_POST[$var_name])) { return (is_array($default)) ? array() : $default; } - $_REQUEST[$var_name] = isset($_POST[$var_name]) ? $_POST[$var_name] : $_GET[$var_name]; + $_REQUEST[$var_name] = $_POST[$var_name] ?? $_GET[$var_name]; } if (!isset($_REQUEST[$var_name]) || (is_array($_REQUEST[$var_name]) && !is_array($default)) || (is_array($default) && !is_array($_REQUEST[$var_name]))) { @@ -689,13 +689,13 @@ function request_var($var_name, $default, $multibyte = false, $cookie = false) if (!is_array($default)) { $type = gettype($default); } else { - list($key_type, $type) = $default; + [$key_type, $type] = $default; $type = gettype($type); $key_type = gettype($key_type); if ($type == 'array') { reset($default); $default = current($default); - list($sub_key_type, $sub_type) = $default; + [$sub_key_type, $sub_type] = $default; $sub_type = gettype($sub_type); $sub_type = ($sub_type == 'array') ? 'NULL' : $sub_type; $sub_key_type = gettype($sub_key_type); @@ -741,10 +741,10 @@ function get_username($user_id) $usernames[$row['user_id']] = $row['username']; } return $usernames; - } else { - $row = DB()->fetch_row("SELECT username FROM " . BB_USERS . " WHERE user_id = $user_id LIMIT 1"); - return $row['username']; } + + $row = DB()->fetch_row("SELECT username FROM " . BB_USERS . " WHERE user_id = $user_id LIMIT 1"); + return $row['username']; } function get_user_id($username) @@ -846,9 +846,9 @@ function get_attachments_dir($cfg = null) if ($cfg['upload_dir'][0] == '/' || ($cfg['upload_dir'][0] != '/' && $cfg['upload_dir'][1] == ':')) { return $cfg['upload_dir']; - } else { - return BB_ROOT . $cfg['upload_dir']; } + + return BB_ROOT . $cfg['upload_dir']; } function bb_get_config($table, $from_db = false, $update_cache = true) @@ -1386,7 +1386,7 @@ function bb_realpath($path) function login_redirect($url = '') { - redirect(LOGIN_URL . '?redirect=' . (($url) ?: (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/'))); + redirect(LOGIN_URL . '?redirect=' . (($url) ?: ($_SERVER['REQUEST_URI'] ?? '/'))); } function meta_refresh($url, $time = 5) @@ -1453,9 +1453,9 @@ function get_forum_display_sort_option($selected_row = 0, $action = 'list', $lis // build list if ($action == 'list') { - for ($i = 0, $iMax = count($listrow['lang_key']); $i < $iMax; $i++) { + foreach ($listrow['lang_key'] as $i => $iValue) { $selected = ($i == $selected_row) ? ' selected="selected"' : ''; - $l_value = (isset($lang[$listrow['lang_key'][$i]])) ? $lang[$listrow['lang_key'][$i]] : $listrow['lang_key'][$i]; + $l_value = $lang[$listrow['lang_key'][$i]] ?? $iValue; $res .= ''; } } else { @@ -1543,7 +1543,7 @@ if (!function_exists('array_intersect_key')) { // Check arrays $array_count = count($args); - for ($i = 0; $i !== $array_count; $i++) { + foreach ($args as $i => $iValue) { if (!is_array($args[$i])) { user_error('array_intersect_key() Argument #' . ($i + 1) . ' is not an array', E_USER_WARNING); @@ -1612,7 +1612,7 @@ function get_topic_icon($topic, $is_unread = null) global $bb_cfg, $images; $t_hot = ($topic['topic_replies'] >= $bb_cfg['hot_threshold']); - $is_unread = null === $is_unread ? is_unread($topic['topic_last_post_time'], $topic['topic_id'], $topic['forum_id']) : $is_unread; + $is_unread = $is_unread ?? is_unread($topic['topic_last_post_time'], $topic['topic_id'], $topic['forum_id']); if ($topic['topic_status'] == TOPIC_MOVED) { $folder_image = $images['folder']; @@ -1789,8 +1789,7 @@ function clean_text_match($text, $ltrim_star = true, $die_if_empty = false) if ($bb_cfg['search_engine_type'] == 'sphinx') { $text = preg_replace('#(?<=\S)\-#u', ' ', $text); // "1-2-3" -> "1 2 3" $text = preg_replace('#[^0-9a-zA-Zа-яА-ЯёЁ\-_*|]#u', ' ', $text); // допустимые символы (кроме " которые отдельно) - $text = str_replace('-', ' -', $text); // - только в начале слова - $text = str_replace('*', '* ', $text); // * только в конце слова + $text = str_replace(['-', '*'], [' -', '* '], $text); // только в начале / конце слова $text = preg_replace('#\s*\|\s*#u', '|', $text); // "| " -> "|" $text = preg_replace('#\|+#u', ' | ', $text); // "||" -> "|" $text = preg_replace('#(?<=\s)[\-*]+\s#u', ' ', $text); // одиночные " - ", " * " @@ -1835,7 +1834,7 @@ function log_sphinx_error($err_type, $err_msg, $query = '') } } -function get_title_match_topics($title_match_sql, $forum_ids = []) +function get_title_match_topics($title_match_sql, array $forum_ids = []) { global $bb_cfg, $sphinx, $userdata, $title_match, $lang; @@ -2011,10 +2010,6 @@ function get_avatar($user_id, $ext_id, $allow_avatar = true, $size = true, $heig { global $bb_cfg; - if ($size) { - // TODO размеры: s, m, l + кеширование - } - $height = !$height ? 'height="' . $height . '"' : ''; $width = !$width ? 'width="' . $width . '"' : ''; diff --git a/library/includes/init_bb.php b/library/includes/init_bb.php index df17da7b4..a8919a670 100644 --- a/library/includes/init_bb.php +++ b/library/includes/init_bb.php @@ -14,8 +14,8 @@ if (!defined('BB_ROOT')) { /** * Check PHP version */ -if (version_compare(PHP_VERSION, '5.6', '<')) { - die('TorrentPier requires PHP version 5.6+. Your PHP version ' . PHP_VERSION); +if (PHP_VERSION_ID < 70103) { + die('TorrentPier requires PHP version 7.1.3+. Your PHP version ' . PHP_VERSION); } /** diff --git a/library/includes/ucp/register.php b/library/includes/ucp/register.php index 78d0f44e5..8d654f586 100644 --- a/library/includes/ucp/register.php +++ b/library/includes/ucp/register.php @@ -331,14 +331,14 @@ foreach ($profile_fields as $field => $can_edit) { $update_user_opt = array( # 'user_opt_name' => ($reg_mode) ? #reg_value : #in_login_change - 'user_viewemail' => ($reg_mode) ? false : true, - 'user_viewonline' => ($reg_mode) ? false : true, - 'user_notify' => ($reg_mode) ? true : true, - 'user_notify_pm' => ($reg_mode) ? true : true, - 'user_porn_forums' => ($reg_mode) ? false : true, - 'user_dls' => ($reg_mode) ? false : true, - 'user_callseed' => ($reg_mode) ? true : true, - 'user_retracker' => ($reg_mode) ? true : true, + 'user_viewemail' => $reg_mode ? false : true, + 'user_viewonline' => $reg_mode ? false : true, + 'user_notify' => $reg_mode ? true : true, + 'user_notify_pm' => $reg_mode ? true : true, + 'user_porn_forums' => $reg_mode ? false : true, + 'user_dls' => $reg_mode ? false : true, + 'user_callseed' => $reg_mode ? true : true, + 'user_retracker' => $reg_mode ? true : true, ); foreach ($update_user_opt as $opt => $can_change_opt) { diff --git a/login.php b/login.php index 381179f18..11f879520 100644 --- a/login.php +++ b/login.php @@ -37,11 +37,10 @@ if (preg_match('/^redirect=([a-z0-9\.#\/\?&=\+\-_]+)/si', $_SERVER['QUERY_STRING } elseif (!empty($_POST['redirect'])) { $redirect_url = str_replace('&', '&', htmlspecialchars($_POST['redirect'])); } elseif (!empty($_SERVER['HTTP_REFERER']) && ($parts = @parse_url($_SERVER['HTTP_REFERER']))) { - $redirect_url = (isset($parts['path']) ? $parts['path'] : "index.php") . (isset($parts['query']) ? '?' . $parts['query'] : ''); + $redirect_url = ($parts['path'] ?? "index.php") . (isset($parts['query']) ? '?' . $parts['query'] : ''); } -$redirect_url = str_replace('&admin=1', '', $redirect_url); -$redirect_url = str_replace('?admin=1', '', $redirect_url); +$redirect_url = str_replace(['&admin=1', '?admin=1'], '', $redirect_url); if (!$redirect_url || false !== strpos(urldecode($redirect_url), "\n") || false !== strpos(urldecode($redirect_url), "\r") || false !== strpos(urldecode($redirect_url), ';url')) { $redirect_url = "index.php"; @@ -56,8 +55,8 @@ if (isset($_REQUEST['admin']) && !IS_AM) { $mod_admin_login = (IS_AM && !$user->data['session_admin']); // login username & password -$login_username = ($mod_admin_login) ? $userdata['username'] : (isset($_POST['login_username']) ? $_POST['login_username'] : ''); -$login_password = isset($_POST['login_password']) ? $_POST['login_password'] : ''; +$login_username = ($mod_admin_login) ? $userdata['username'] : ($_POST['login_username'] ?? ''); +$login_password = $_POST['login_password'] ?? ''; // Проверка на неверную комбинацию логин/пароль $need_captcha = false; diff --git a/memberlist.php b/memberlist.php index f2c93a141..44e8afe6c 100644 --- a/memberlist.php +++ b/memberlist.php @@ -147,7 +147,7 @@ $template->assign_vars(array( // per-letter selection end $sql = "SELECT username, user_id, user_rank, user_opt, user_posts, user_regdate, user_from, user_website, user_email FROM " . BB_USERS . " WHERE user_id NOT IN(" . EXCLUDED_USERS . ")"; if ($username) { - $username = preg_replace('/\*/', '%', clean_username($username)); + $username = str_replace("\*", '%', clean_username($username)); $letter_sql = "username LIKE '" . DB()->escape($username) . "'"; } $sql .= ($letter_sql) ? " AND $letter_sql" : ''; diff --git a/modcp.php b/modcp.php index ef8fb464a..6dca314df 100644 --- a/modcp.php +++ b/modcp.php @@ -70,9 +70,9 @@ function validate_mode_condition($request_index, $mod_action = '') } // Obtain initial vars -$forum_id = isset($_REQUEST['f']) ? $_REQUEST['f'] : 0; -$topic_id = isset($_REQUEST['t']) ? $_REQUEST['t'] : 0; -$post_id = isset($_REQUEST['p']) ? $_REQUEST['p'] : 0; +$forum_id = $_REQUEST['f'] ?? 0; +$topic_id = $_REQUEST['t'] ?? 0; +$post_id = $_REQUEST['p'] ?? 0; $start = isset($_REQUEST['start']) ? abs((int)$_REQUEST['start']) : 0; $confirmed = isset($_POST['confirm']); @@ -166,7 +166,7 @@ if (!$is_auth['auth_mod']) { // Redirect to login page if not admin session if ($is_moderator && !$userdata['session_admin']) { - $redirect = isset($_POST['redirect']) ? $_POST['redirect'] : $_SERVER['REQUEST_URI']; + $redirect = $_POST['redirect'] ?? $_SERVER['REQUEST_URI']; redirect(LOGIN_URL . "?redirect=$redirect&admin=1"); } @@ -189,7 +189,7 @@ switch ($mode) { bb_die($lang['NONE_SELECTED']); } - $req_topics = isset($_POST['topic_id_list']) ? $_POST['topic_id_list'] : $topic_id; + $req_topics = $_POST['topic_id_list'] ?? $topic_id; validate_topics($forum_id, $req_topics, $topic_titles); if (!$req_topics || !($topic_csv = get_id_csv($req_topics))) { @@ -370,10 +370,10 @@ switch ($mode) { //mpd $delete_posts = isset($_POST['delete_posts']); $split = (isset($_POST['split_type_all']) || isset($_POST['split_type_beyond'])); - $posts = (isset($_POST['post_id_list'])) ? $_POST['post_id_list'] : array(); + $posts = $_POST['post_id_list'] ?? array(); $start = /* (isset($_POST['start'])) ? intval($_POST['start']) : */ 0; - $topic_first_post_id = (isset($topic_row['topic_first_post_id'])) ? $topic_row['topic_first_post_id'] : ''; + $topic_first_post_id = $topic_row['topic_first_post_id'] ?? ''; $post_id_sql = $req_post_id_sql = array(); diff --git a/posting.php b/posting.php index 82dffdeca..61bef54c8 100644 --- a/posting.php +++ b/posting.php @@ -324,7 +324,7 @@ if (($delete || $mode == 'delete') && !$confirm) { $username = (!empty($_POST['username'])) ? clean_username($_POST['username']) : ''; $subject = (!empty($_POST['subject'])) ? clean_title($_POST['subject']) : ''; $message = (!empty($_POST['message'])) ? prepare_message($_POST['message']) : ''; - $attach_rg_sig = (isset($_POST['attach_rg_sig']) && isset($_POST['poster_rg']) && $_POST['poster_rg'] != -1) ? 1 : 0; + $attach_rg_sig = (isset($_POST['attach_rg_sig'], $_POST['poster_rg']) && $_POST['poster_rg'] != -1) ? 1 : 0; $poster_rg_id = (isset($_POST['poster_rg']) && $_POST['poster_rg'] != -1) ? (int)$_POST['poster_rg'] : 0; \TorrentPier\Legacy\Post::prepare_post($mode, $post_data, $error_msg, $username, $subject, $message); @@ -527,7 +527,7 @@ if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post'])) { } } //bt -$topic_dl_type = (isset($post_info['topic_dl_type'])) ? $post_info['topic_dl_type'] : 0; +$topic_dl_type = $post_info['topic_dl_type'] ?? 0; if ($post_info['allow_reg_tracker'] && $post_data['first_post'] && ($topic_dl_type || $is_auth['auth_mod'])) { $sql = " diff --git a/privmsg.php b/privmsg.php index 51a2700be..0783bcd3e 100644 --- a/privmsg.php +++ b/privmsg.php @@ -1046,7 +1046,6 @@ if ($mode == 'read') { $replacement_word = array(); obtain_word_list($orig_word, $replacement_word); - $preview_message = htmlCHR($privmsg_message, false, ENT_NOQUOTES); $preview_message = bbcode2html($privmsg_message); if (count($orig_word)) { @@ -1287,7 +1286,7 @@ if ($mode == 'read') { $previous_days_text = array($lang['ALL_POSTS'], $lang['1_DAY'], $lang['7_DAYS'], $lang['2_WEEKS'], $lang['1_MONTH'], $lang['3_MONTHS'], $lang['6_MONTHS'], $lang['1_YEAR']); $select_msg_days = ''; - for ($i = 0; $i < count($previous_days); $i++) { + for ($i = 0, $iMax = count($previous_days); $i < $iMax; $i++) { $selected = ($msg_days == $previous_days[$i]) ? ' selected="selected"' : ''; $select_msg_days .= ''; } diff --git a/search.php b/search.php index e7d6ca541..7f0e4314c 100644 --- a/search.php +++ b/search.php @@ -70,7 +70,7 @@ $tracking_forums = get_tracks('forum'); if ($mode =& $_REQUEST['mode']) { // This handles the simple windowed user search functions called from various other scripts if ($mode == 'searchuser') { - $username = isset($_POST['search_username']) ? $_POST['search_username'] : ''; + $username = $_POST['search_username'] ?? ''; username_search($username); exit; } @@ -517,7 +517,7 @@ if ($post_mode) { $SQL['GROUP BY'][] = "item_id"; $SQL['ORDER BY'][] = ($new_posts && $join_p) ? "p.topic_id ASC, p.post_time ASC" : "$order $sort"; - $SQL['LIMIT'][] = "$search_limit"; + $SQL['LIMIT'][] = (string)$search_limit; $items_display = fetch_search_ids($SQL); } elseif (!$items_display = array_slice($items_found, $start, $per_page)) { @@ -726,7 +726,7 @@ else { } $SQL['GROUP BY'][] = "item_id"; - $SQL['LIMIT'][] = "$search_limit"; + $SQL['LIMIT'][] = (string)$search_limit; if ($egosearch) { $SQL['ORDER BY'][] = 'max_post_time DESC'; @@ -767,7 +767,7 @@ else { $SQL['WHERE'][] = "t.forum_id NOT IN($excluded_forums_csv)"; } - $SQL['LIMIT'][] = "$per_page"; + $SQL['LIMIT'][] = (string)$per_page; // Fetch topics data $topic_rows = array(); @@ -918,7 +918,7 @@ function username_search($search_match) $username_list = ''; if (!empty($search_match)) { - $username_search = preg_replace('/\*/', '%', clean_username($search_match)); + $username_search = str_replace("\*", '%', clean_username($search_match)); $sql = " SELECT username diff --git a/src/Helpers/CronHelper.php b/src/Helpers/CronHelper.php index 2dd8c6cfd..4a8b2b8b7 100644 --- a/src/Helpers/CronHelper.php +++ b/src/Helpers/CronHelper.php @@ -107,8 +107,8 @@ class CronHelper */ public static function trackRunning($mode) { - if (!defined('START_MARK')) { - define('START_MARK', TRIGGERS_DIR . '/cron_started_at_' . date('Y-m-d_H-i-s') . '_by_pid_' . getmypid()); + if (!\defined('START_MARK')) { + \define('START_MARK', TRIGGERS_DIR . '/cron_started_at_' . date('Y-m-d_H-i-s') . '_by_pid_' . getmypid()); } if ($mode === 'start') { diff --git a/src/Legacy/Admin/Common.php b/src/Legacy/Admin/Common.php index 535a2968f..acd8e6268 100644 --- a/src/Legacy/Admin/Common.php +++ b/src/Legacy/Admin/Common.php @@ -239,9 +239,10 @@ class Common $where_sql "; - $topic_csv = array(); + $topic_csv = []; foreach (DB()->fetch_rowset($sql) as $row) { + /** @noinspection UnsupportedStringOffsetOperationsInspection */ $topic_csv[] = $row['topic_id']; $log_topics[] = $row; $sync_forums[$row['forum_id']] = true; @@ -660,7 +661,7 @@ class Common $log_action->admin('mod_post_delete', array( 'log_msg' => 'user: ' . self::get_usernames_for_log($user_id) . "
posts: $deleted_posts_count", )); - } elseif (!defined('IN_CRON')) { + } elseif (!\defined('IN_CRON')) { foreach ($log_topics as $row) { $log_action->mod('mod_post_delete', array( 'forum_id' => $row['forum_id'], diff --git a/src/Legacy/Admin/Cron.php b/src/Legacy/Admin/Cron.php index ea50bc7cc..8690dbf19 100644 --- a/src/Legacy/Admin/Cron.php +++ b/src/Legacy/Admin/Cron.php @@ -22,7 +22,7 @@ class Cron */ public static function run_jobs($jobs) { - define('IN_CRON', true); + \define('IN_CRON', true); $sql = "SELECT cron_script FROM " . BB_CRON . " WHERE cron_id IN ($jobs)"; if (!$result = DB()->sql_query($sql)) { diff --git a/src/Legacy/Admin/Torrent.php b/src/Legacy/Admin/Torrent.php index 13e21d3be..e5019558a 100644 --- a/src/Legacy/Admin/Torrent.php +++ b/src/Legacy/Admin/Torrent.php @@ -105,9 +105,9 @@ class Torrent foreach ($default_cfg as $config_name => $config_value) { $template->assign_vars(array( - 'L_' . strtoupper($config_name) => isset($lang[$config_name]) ? $lang[$config_name] : '', - 'L_' . strtoupper($config_name) . '_EXPL' => isset($lang[$config_name . '_expl']) ? $lang[$config_name . '_expl'] : '', - 'L_' . strtoupper($config_name) . '_HEAD' => isset($lang[$config_name . '_head']) ? $lang[$config_name . '_head'] : '', + 'L_' . strtoupper($config_name) => $lang[$config_name] ?? '', + 'L_' . strtoupper($config_name) . '_EXPL' => $lang[$config_name . '_expl'] ?? '', + 'L_' . strtoupper($config_name) . '_HEAD' => $lang[$config_name . '_head'] ?? '', )); } } diff --git a/src/Legacy/Ajax.php b/src/Legacy/Ajax.php index eeeaae8e0..0b8c207f0 100644 --- a/src/Legacy/Ajax.php +++ b/src/Legacy/Ajax.php @@ -71,7 +71,7 @@ class Ajax // Check that requested action is valid $action = $this->action; - if (!$action || !is_string($action)) { + if (!$action || !\is_string($action)) { $this->ajax_die('no action specified'); } elseif (!$action_params =& $this->valid_actions[$action]) { $this->ajax_die('invalid action: ' . $action); @@ -179,8 +179,8 @@ class Ajax $response_js = json_encode($this->response); - if (GZIP_OUTPUT_ALLOWED && !defined('NO_GZIP')) { - if (UA_GZIP_SUPPORTED && strlen($response_js) > 2000) { + if (GZIP_OUTPUT_ALLOWED && !\defined('NO_GZIP')) { + if (UA_GZIP_SUPPORTED && \strlen($response_js) > 2000) { header('Content-Encoding: gzip'); $response_js = gzencode($response_js, 1); } diff --git a/src/Legacy/Atom.php b/src/Legacy/Atom.php index 348c721d0..d4c92a4eb 100644 --- a/src/Legacy/Atom.php +++ b/src/Legacy/Atom.php @@ -84,7 +84,7 @@ class Atom } $topics[] = $topic; } - if (!count($topics)) { + if (!\count($topics)) { @unlink($file_path); return false; } @@ -138,7 +138,7 @@ class Atom } $topics[] = $topic; } - if (!count($topics)) { + if (!\count($topics)) { @unlink($file_path); return false; } @@ -163,7 +163,7 @@ class Atom private static function create_atom($file_path, $mode, $id, $title, $topics) { global $lang; - $dir = dirname($file_path); + $dir = \dirname($file_path); if (!file_exists($dir)) { if (!bb_mkdir($dir)) { return false; @@ -195,7 +195,7 @@ class Atom $orig_word = array(); $replacement_word = array(); obtain_word_list($orig_word, $replacement_word); - if (count($orig_word)) { + if (\count($orig_word)) { $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); } $topic_title = wbr($topic_title); diff --git a/src/Legacy/Attach.php b/src/Legacy/Attach.php index 693abdee9..3cb3b2519 100644 --- a/src/Legacy/Attach.php +++ b/src/Legacy/Attach.php @@ -48,7 +48,7 @@ class Attach $this->attachment_extension_list = get_var('extension_list', ['']); $this->attachment_mimetype_list = get_var('mimetype_list', ['']); - $this->filename = (isset($_FILES['fileupload']) && isset($_FILES['fileupload']['name']) && $_FILES['fileupload']['name'] !== 'none') ? trim(stripslashes($_FILES['fileupload']['name'])) : ''; + $this->filename = (isset($_FILES['fileupload'], $_FILES['fileupload']['name']) && $_FILES['fileupload']['name'] !== 'none') ? trim(stripslashes($_FILES['fileupload']['name'])) : ''; $this->attachment_list = get_var('attachment_list', ['']); $this->attachment_thumbnail_list = get_var('attach_thumbnail_list', [0]); @@ -247,7 +247,7 @@ class Attach } } - $this->num_attachments = count($this->attachment_list); + $this->num_attachments = \count($this->attachment_list); if ($submit) { if ($mode === 'newtopic' || $mode === 'reply' || $mode === 'editpost') { @@ -315,7 +315,7 @@ class Attach // restore values :) if (isset($_POST['attachment_list'])) { - for ($i = 0, $iMax = count($actual_list); $i < $iMax; $i++) { + for ($i = 0, $iMax = \count($actual_list); $i < $iMax; $i++) { $restore = false; $del_thumb = false; @@ -383,7 +383,7 @@ class Attach $this->attachment_comment_list = []; - for ($i = 0, $iMax = count($this->attachment_list); $i < $iMax; $i++) { + for ($i = 0, $iMax = \count($this->attachment_list); $i < $iMax; $i++) { $this->attachment_comment_list[$i] = $actual_comment_list[$i]; } } @@ -405,7 +405,7 @@ class Attach $attachment_id = 0; $actual_element = 0; - for ($i = 0, $iMax = count($actual_id_list); $i < $iMax; $i++) { + for ($i = 0, $iMax = \count($actual_id_list); $i < $iMax; $i++) { if (isset($_POST['update_attachment'][$actual_id_list[$i]])) { $attachment_id = (int)$actual_id_list[$i]; $actual_element = $i; @@ -532,11 +532,11 @@ class Attach } if ($mode === 'attach_list') { - for ($i = 0, $iMax = count($this->attachment_list); $i < $iMax; $i++) { + for ($i = 0, $iMax = \count($this->attachment_list); $i < $iMax; $i++) { if ($this->attachment_id_list[$i]) { //bt - if ($this->attachment_extension_list[$i] === TORRENT_EXT && !defined('TORRENT_ATTACH_ID')) { - define('TORRENT_ATTACH_ID', $this->attachment_id_list[$i]); + if ($this->attachment_extension_list[$i] === TORRENT_EXT && !\defined('TORRENT_ATTACH_ID')) { + \define('TORRENT_ATTACH_ID', $this->attachment_id_list[$i]); } //bt end @@ -574,8 +574,8 @@ class Attach $attach_id = DB()->sql_nextid(); //bt - if ($this->attachment_extension_list[$i] === TORRENT_EXT && !defined('TORRENT_ATTACH_ID')) { - define('TORRENT_ATTACH_ID', $attach_id); + if ($this->attachment_extension_list[$i] === TORRENT_EXT && !\defined('TORRENT_ATTACH_ID')) { + \define('TORRENT_ATTACH_ID', $attach_id); } //bt end @@ -659,7 +659,7 @@ class Attach if ($this->attachment_list) { $hidden = ''; - for ($i = 0, $iMax = count($this->attachment_list); $i < $iMax; $i++) { + for ($i = 0, $iMax = \count($this->attachment_list); $i < $iMax; $i++) { $hidden .= ''; $hidden .= ''; $hidden .= ''; @@ -691,7 +691,7 @@ class Attach 'TPL_POSTED_ATTACHMENTS' => true, ]); - for ($i = 0, $iMax = count($this->attachment_list); $i < $iMax; $i++) { + for ($i = 0, $iMax = \count($this->attachment_list); $i < $iMax; $i++) { if (@$this->attachment_id_list[$i] == 0) { $download_link = $upload_dir . '/' . basename($this->attachment_list[$i]); } else { @@ -907,7 +907,7 @@ class Attach // Check Image Size, if it's an image if (!$error && !IS_ADMIN && $cat_id === IMAGE_CAT) { - list($width, $height) = image_getdimension($upload_dir . '/' . $this->attach_filename); + [$width, $height] = image_getdimension($upload_dir . '/' . $this->attach_filename); if ($width && $height && (int)$attach_config['img_max_width'] && (int)$attach_config['img_max_height']) { if ($width > (int)$attach_config['img_max_width'] || $height > (int)$attach_config['img_max_height']) { diff --git a/src/Legacy/AttachPosting.php b/src/Legacy/AttachPosting.php index 14b4b199e..a39782611 100644 --- a/src/Legacy/AttachPosting.php +++ b/src/Legacy/AttachPosting.php @@ -38,7 +38,7 @@ class AttachPosting extends Attach $this->do_insert_attachment('attach_list', 'post', $post_id); $this->do_insert_attachment('last_attachment', 'post', $post_id); - if ((count($this->attachment_list) > 0 || $this->post_attach) && !isset($_POST['update_attachment'])) { + if ((\count($this->attachment_list) > 0 || $this->post_attach) && !isset($_POST['update_attachment'])) { $sql = 'UPDATE ' . BB_POSTS . ' SET post_attachment = 1 WHERE post_id = ' . (int)$post_id; if (!DB()->sql_query($sql)) { diff --git a/src/Legacy/BBCode.php b/src/Legacy/BBCode.php index 58ca95598..ace23b9c0 100644 --- a/src/Legacy/BBCode.php +++ b/src/Legacy/BBCode.php @@ -281,7 +281,7 @@ class BBCode $url = 'http://' . $url; } - if (in_array(parse_url($url, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) { + if (\in_array(parse_url($url, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) { $link = "$url_name"; } else { $link = "$url_name"; @@ -352,7 +352,7 @@ class BBCode $href = $m[1]; $name = (mb_strlen($href, 'UTF-8') > $max_len) ? mb_substr($href, 0, $max_len - 19) . '...' . mb_substr($href, -16) : $href; - if (in_array(parse_url($href, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) { + if (\in_array(parse_url($href, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) { $link = "$name"; } else { $link = "$name"; diff --git a/src/Legacy/Cache/Apc.php b/src/Legacy/Cache/Apc.php index 997b46ae9..9cd1fc828 100644 --- a/src/Legacy/Cache/Apc.php +++ b/src/Legacy/Cache/Apc.php @@ -60,13 +60,13 @@ class Apc extends Common $this->num_queries++; return apc_delete($this->prefix . $name); - } else { - return apc_clear_cache(); } + + return apc_clear_cache(); } public function is_installed() { - return function_exists('apc_fetch'); + return \function_exists('apc_fetch'); } } diff --git a/src/Legacy/Cache/Common.php b/src/Legacy/Cache/Common.php index 0e68db838..45434d523 100644 --- a/src/Legacy/Cache/Common.php +++ b/src/Legacy/Cache/Common.php @@ -25,7 +25,7 @@ class Common if ($get_miss_key_callback) { return $get_miss_key_callback($name); } - return is_array($name) ? array() : false; + return \is_array($name) ? array() : false; } /** diff --git a/src/Legacy/Cache/File.php b/src/Legacy/Cache/File.php index cc17c22c7..26023fc68 100644 --- a/src/Legacy/Cache/File.php +++ b/src/Legacy/Cache/File.php @@ -46,7 +46,7 @@ class File extends Common public function set($name, $value, $ttl = 86400) { - if (!function_exists('var_export')) { + if (!\function_exists('var_export')) { return false; } diff --git a/src/Legacy/Cache/Memcache.php b/src/Legacy/Cache/Memcache.php index d7c24ae41..31dc11f8d 100644 --- a/src/Legacy/Cache/Memcache.php +++ b/src/Legacy/Cache/Memcache.php @@ -97,9 +97,9 @@ class Memcache extends Common $this->num_queries++; return ($this->connected) ? $this->memcache->delete($this->prefix . $name, 0) : false; - } else { - return ($this->connected) ? $this->memcache->flush() : false; } + + return ($this->connected) ? $this->memcache->flush() : false; } public function is_installed() diff --git a/src/Legacy/Cache/Redis.php b/src/Legacy/Cache/Redis.php index bb3ee85e6..415e51ffd 100644 --- a/src/Legacy/Cache/Redis.php +++ b/src/Legacy/Cache/Redis.php @@ -85,9 +85,9 @@ class Redis extends Common $this->num_queries++; return true; - } else { - return false; } + + return false; } public function rm($name = '') @@ -104,9 +104,9 @@ class Redis extends Common $this->num_queries++; return ($this->connected) ? $this->redis->del($this->prefix . $name) : false; - } else { - return ($this->connected) ? $this->redis->flushDB() : false; } + + return ($this->connected) ? $this->redis->flushDB() : false; } public function is_installed() diff --git a/src/Legacy/Cache/Sqlite.php b/src/Legacy/Cache/Sqlite.php index 678199604..4e954281e 100644 --- a/src/Legacy/Cache/Sqlite.php +++ b/src/Legacy/Cache/Sqlite.php @@ -44,11 +44,11 @@ class Sqlite extends Common public function get($name, $get_miss_key_callback = '', $ttl = 604800) { if (empty($name)) { - return is_array($name) ? array() : false; + return \is_array($name) ? array() : false; } $this->db->shard($name); $cached_items = array(); - $this->prefix_len = strlen($this->prefix); + $this->prefix_len = \strlen($this->prefix); $this->prefix_sql = SQLite3::escapeString($this->prefix); $name_ary = $name_sql = (array)$name; @@ -59,7 +59,7 @@ class Sqlite extends Common SELECT cache_name, cache_value FROM " . $this->cfg['table_name'] . " WHERE cache_name IN('$this->prefix_sql" . implode("','$this->prefix_sql", $name_sql) . "') AND cache_expire_time > " . TIMENOW . " - LIMIT " . count($name) . " + LIMIT " . \count($name) . " "); $this->db->debug('start', 'unserialize()'); @@ -76,11 +76,11 @@ class Sqlite extends Common } } // return - if (is_array($this->prefix . $name)) { + if (\is_array($this->prefix . $name)) { return $cached_items; - } else { - return isset($cached_items[$name]) ? $cached_items[$name] : false; } + + return $cached_items[$name] ?? false; } public function set($name, $value, $ttl = 604800) diff --git a/src/Legacy/Cache/SqliteCommon.php b/src/Legacy/Cache/SqliteCommon.php index b468cde47..b878bb3a4 100644 --- a/src/Legacy/Cache/SqliteCommon.php +++ b/src/Legacy/Cache/SqliteCommon.php @@ -70,7 +70,7 @@ class SqliteCommon extends Common if ($type == 'none') { return; } - if (is_array($name)) { + if (\is_array($name)) { trigger_error('cannot shard: $name is array', E_USER_ERROR); } @@ -128,7 +128,7 @@ class SqliteCommon extends Common public function fetch_row($query) { $result = $this->query($query); - return is_resource($result) ? $result->fetchArray(SQLITE3_ASSOC) : false; + return \is_resource($result) ? $result->fetchArray(SQLITE3_ASSOC) : false; } public function fetch_rowset($query) @@ -143,7 +143,7 @@ class SqliteCommon extends Common public function changes() { - return is_resource($this->dbh) ? $this->dbh->changes() : 0; + return \is_resource($this->dbh) ? $this->dbh->changes() : 0; } public function escape($str) @@ -153,7 +153,7 @@ class SqliteCommon extends Common public function get_error_msg() { - return 'SQLite error #' . ($err_code = $this->dbh->lastErrorCode()) . ': ' . $this->dbh->lastErrorMsg(); + return 'SQLite error #' . $this->dbh->lastErrorCode() . ': ' . $this->dbh->lastErrorMsg(); } public function rm($name = '') diff --git a/src/Legacy/Cache/Xcache.php b/src/Legacy/Cache/Xcache.php index 21d15edfd..3192b0862 100644 --- a/src/Legacy/Cache/Xcache.php +++ b/src/Legacy/Cache/Xcache.php @@ -60,15 +60,15 @@ class Xcache extends Common $this->num_queries++; return xcache_unset($this->prefix . $name); - } else { - xcache_clear_cache(XC_TYPE_PHP, 0); - xcache_clear_cache(XC_TYPE_VAR, 0); - return; } + + xcache_clear_cache(XC_TYPE_PHP, 0); + xcache_clear_cache(XC_TYPE_VAR, 0); + return; } public function is_installed() { - return function_exists('xcache_get'); + return \function_exists('xcache_get'); } } diff --git a/src/Legacy/Caches.php b/src/Legacy/Caches.php index be9ff78d3..a1f44ead2 100644 --- a/src/Legacy/Caches.php +++ b/src/Legacy/Caches.php @@ -102,9 +102,9 @@ class Caches { if (!empty($cfg['shard_type']) && $cfg['shard_type'] != 'none') { return $this->cfg['db_dir'] . $name . '_*' . $ext; - } else { - return $this->cfg['db_dir'] . $name . $ext; } + + return $this->cfg['db_dir'] . $name . $ext; } public function get_table_schema($cfg) diff --git a/src/Legacy/Common/Html.php b/src/Legacy/Common/Html.php index 5625c6f9e..2d34b7526 100644 --- a/src/Legacy/Common/Html.php +++ b/src/Legacy/Common/Html.php @@ -66,7 +66,7 @@ class Html foreach ($params as $opt_name => $opt_val) { $opt_name = rtrim($opt_name); - if (is_array($opt_val)) { + if (\is_array($opt_val)) { $this->cur_attr =& $this->cur_attr[$opt_name]; $label = htmlCHR(str_short($opt_name, $this->max_length)); @@ -112,7 +112,7 @@ class Html public function _array2html_rec($array, $ul, $li) { foreach ($array as $k => $v) { - if (is_array($v)) { + if (\is_array($v)) { $this->out .= "<$li>$k<$ul>"; $this->_array2html_rec($v, $ul, $li); $this->out .= ""; diff --git a/src/Legacy/Common/Upload.php b/src/Legacy/Common/Upload.php index 6f543284c..1f2a39641 100644 --- a/src/Legacy/Common/Upload.php +++ b/src/Legacy/Common/Upload.php @@ -92,7 +92,7 @@ class Upload // img if ($this->cfg['max_width'] || $this->cfg['max_height']) { if ($img_info = getimagesize($this->file['tmp_name'])) { - list($width, $height, $type, $attr) = $img_info; + [$width, $height, $type, $attr] = $img_info; // redefine ext if (!$width || !$height || !$type || !isset($this->img_types[$type])) { @@ -112,7 +112,7 @@ class Upload } } // check ext - if ($uploaded_only && (!isset($this->ext_ids[$this->file_ext]) || !in_array($this->file_ext, $this->cfg['allowed_ext'], true))) { + if ($uploaded_only && (!isset($this->ext_ids[$this->file_ext]) || !\in_array($this->file_ext, $this->cfg['allowed_ext'], true))) { $this->errors[] = sprintf($lang['UPLOAD_ERROR_NOT_ALLOWED'], htmlCHR($this->file_ext)); return false; } @@ -137,9 +137,9 @@ class Upload if ($mode == 'attach') { $file_path = get_attach_path($params['topic_id']); return $this->_move($file_path); - } else { - trigger_error("Invalid upload mode: $mode", E_USER_ERROR); } + + trigger_error("Invalid upload mode: $mode", E_USER_ERROR); } /** @@ -148,7 +148,7 @@ class Upload */ public function _move($file_path) { - $dir = dirname($file_path); + $dir = \dirname($file_path); if (!file_exists($dir)) { if (!bb_mkdir($dir)) { $this->errors[] = "Cannot create dir: $dir"; diff --git a/src/Legacy/Common/User.php b/src/Legacy/Common/User.php index 24a349008..50463761b 100644 --- a/src/Legacy/Common/User.php +++ b/src/Legacy/Common/User.php @@ -155,8 +155,8 @@ class User $ip_check_u = substr(USER_IP, 0, 6); if ($ip_check_s == $ip_check_u) { - if ($this->data['user_id'] != GUEST_UID && defined('IN_ADMIN')) { - define('SID_GET', "sid={$this->data['session_id']}"); + if ($this->data['user_id'] != GUEST_UID && \defined('IN_ADMIN')) { + \define('SID_GET', "sid={$this->data['session_id']}"); } $session_id = $this->sessiondata['sid'] = $this->data['session_id']; @@ -194,13 +194,13 @@ class User $this->session_create($userdata, true); } - define('IS_GUEST', !$this->data['session_logged_in']); - define('IS_ADMIN', !IS_GUEST && (int)$this->data['user_level'] === ADMIN); - define('IS_MOD', !IS_GUEST && (int)$this->data['user_level'] === MOD); - define('IS_GROUP_MEMBER', !IS_GUEST && (int)$this->data['user_level'] === GROUP_MEMBER); - define('IS_USER', !IS_GUEST && (int)$this->data['user_level'] === USER); - define('IS_SUPER_ADMIN', IS_ADMIN && isset($bb_cfg['super_admins'][$this->data['user_id']])); - define('IS_AM', IS_ADMIN || IS_MOD); + \define('IS_GUEST', !$this->data['session_logged_in']); + \define('IS_ADMIN', !IS_GUEST && (int)$this->data['user_level'] === ADMIN); + \define('IS_MOD', !IS_GUEST && (int)$this->data['user_level'] === MOD); + \define('IS_GROUP_MEMBER', !IS_GUEST && (int)$this->data['user_level'] === GROUP_MEMBER); + \define('IS_USER', !IS_GUEST && (int)$this->data['user_level'] === USER); + \define('IS_SUPER_ADMIN', IS_ADMIN && isset($bb_cfg['super_admins'][$this->data['user_id']])); + \define('IS_AM', IS_ADMIN || IS_MOD); $this->set_shortcuts(); @@ -272,7 +272,7 @@ class User if (!$session_time = $this->data['user_session_time']) { $last_visit = TIMENOW; - define('FIRST_LOGON', true); + \define('FIRST_LOGON', true); } elseif ($session_time < (TIMENOW - $bb_cfg['last_visit_update_intrv'])) { $last_visit = max($session_time, (TIMENOW - 86400 * $bb_cfg['max_last_visit_days'])); } @@ -312,8 +312,8 @@ class User $this->set_session_cookies($user_id); - if ($login && (defined('IN_ADMIN') || $mod_admin_session)) { - define('SID_GET', "sid=$session_id"); + if ($login && (\defined('IN_ADMIN') || $mod_admin_session)) { + \define('SID_GET', "sid=$session_id"); } Sessions::cache_set_userdata($this->data); @@ -406,7 +406,9 @@ class User Sessions::cache_update_userdata($this->data); return $this->data; - } elseif ($new_session_userdata = $this->session_create($userdata, false)) { + } + + if ($new_session_userdata = $this->session_create($userdata, false)) { // Removing guest sessions from this IP DB()->query(" DELETE FROM " . BB_SESSIONS . " @@ -415,9 +417,9 @@ class User "); return $new_session_userdata; - } else { - trigger_error("Could not start session : login", E_USER_ERROR); } + + trigger_error("Could not start session : login", E_USER_ERROR); } } @@ -556,17 +558,17 @@ class User { global $bb_cfg, $theme, $source_lang, $DeltaTime; - if (defined('LANG_DIR')) { + if (\defined('LANG_DIR')) { return; } // prevent multiple calling - define('DEFAULT_LANG_DIR', LANG_ROOT_DIR . '/' . $bb_cfg['default_lang'] . '/'); - define('SOURCE_LANG_DIR', LANG_ROOT_DIR . '/source/'); + \define('DEFAULT_LANG_DIR', LANG_ROOT_DIR . '/' . $bb_cfg['default_lang'] . '/'); + \define('SOURCE_LANG_DIR', LANG_ROOT_DIR . '/source/'); if ($this->data['user_id'] != GUEST_UID) { if ($this->data['user_lang'] && $this->data['user_lang'] != $bb_cfg['default_lang']) { $bb_cfg['default_lang'] = basename($this->data['user_lang']); - define('LANG_DIR', LANG_ROOT_DIR . '/' . $bb_cfg['default_lang'] . '/'); + \define('LANG_DIR', LANG_ROOT_DIR . '/' . $bb_cfg['default_lang'] . '/'); } if (isset($this->data['user_timezone'])) { @@ -577,8 +579,8 @@ class User $this->data['user_lang'] = $bb_cfg['default_lang']; $this->data['user_timezone'] = $bb_cfg['board_timezone']; - if (!defined('LANG_DIR')) { - define('LANG_DIR', DEFAULT_LANG_DIR); + if (!\defined('LANG_DIR')) { + \define('LANG_DIR', DEFAULT_LANG_DIR); } /** Temporary place source language to the global */ @@ -590,8 +592,7 @@ class User /** Place user language to the global */ global $lang; require(LANG_DIR . 'main.php'); - setlocale(LC_ALL, isset($bb_cfg['lang'][$this->data['user_lang']]['locale']) ? - $bb_cfg['lang'][$this->data['user_lang']]['locale'] : 'en_US.UTF-8'); + setlocale(LC_ALL, $bb_cfg['lang'][$this->data['user_lang']]['locale'] ?? 'en_US.UTF-8'); $lang += $source_lang; $theme = setup_style(); @@ -648,7 +649,7 @@ class User } elseif (!empty($_COOKIE['opt_js'])) { $opt_js = json_decode($_COOKIE['opt_js'], true); - if (is_array($opt_js)) { + if (\is_array($opt_js)) { $this->opt_js = array_merge($this->opt_js, $opt_js); } } diff --git a/src/Legacy/Datastore/Apc.php b/src/Legacy/Datastore/Apc.php index 994beafec..79960165e 100644 --- a/src/Legacy/Datastore/Apc.php +++ b/src/Legacy/Datastore/Apc.php @@ -73,6 +73,6 @@ class Apc extends Common public function is_installed() { - return function_exists('apc_fetch'); + return \function_exists('apc_fetch'); } } diff --git a/src/Legacy/Datastore/Common.php b/src/Legacy/Datastore/Common.php index 9cb5b9cb1..7accc976f 100644 --- a/src/Legacy/Datastore/Common.php +++ b/src/Legacy/Datastore/Common.php @@ -56,7 +56,7 @@ class Common { foreach ((array)$items as $item) { // игнор уже поставленного в очередь либо уже извлеченного - if (!in_array($item, $this->queued_items) && !isset($this->data[$item])) { + if (!\in_array($item, $this->queued_items) && !isset($this->data[$item])) { $this->queued_items[] = $item; } } diff --git a/src/Legacy/Datastore/Sqlite.php b/src/Legacy/Datastore/Sqlite.php index 8bbca7cbb..3ec401b68 100644 --- a/src/Legacy/Datastore/Sqlite.php +++ b/src/Legacy/Datastore/Sqlite.php @@ -63,7 +63,7 @@ class Sqlite extends Common return; } - $prefix_len = strlen($this->prefix); + $prefix_len = \strlen($this->prefix); $prefix_sql = SQLite3::escapeString($this->prefix); array_deep($items, 'SQLite3::escapeString'); diff --git a/src/Legacy/Datastore/SqliteCommon.php b/src/Legacy/Datastore/SqliteCommon.php index 5572b127b..3ee1042dd 100644 --- a/src/Legacy/Datastore/SqliteCommon.php +++ b/src/Legacy/Datastore/SqliteCommon.php @@ -70,7 +70,7 @@ class SqliteCommon extends Common if ($type == 'none') { return; } - if (is_array($name)) { + if (\is_array($name)) { trigger_error('cannot shard: $name is array', E_USER_ERROR); } @@ -128,7 +128,7 @@ class SqliteCommon extends Common public function fetch_row($query) { $result = $this->query($query); - return is_resource($result) ? $result->fetchArray(SQLITE3_ASSOC) : false; + return \is_resource($result) ? $result->fetchArray(SQLITE3_ASSOC) : false; } public function fetch_rowset($query) @@ -143,7 +143,7 @@ class SqliteCommon extends Common public function changes() { - return is_resource($this->dbh) ? $this->dbh->changes() : 0; + return \is_resource($this->dbh) ? $this->dbh->changes() : 0; } public function escape($str) @@ -153,7 +153,7 @@ class SqliteCommon extends Common public function get_error_msg() { - return 'SQLite error #' . ($err_code = $this->dbh->lastErrorCode()) . ': ' . $this->dbh->lastErrorMsg(); + return 'SQLite error #' . $this->dbh->lastErrorCode() . ': ' . $this->dbh->lastErrorMsg(); } public function rm($name = '') diff --git a/src/Legacy/Datastore/Xcache.php b/src/Legacy/Datastore/Xcache.php index 3970239e5..d63083a91 100644 --- a/src/Legacy/Datastore/Xcache.php +++ b/src/Legacy/Datastore/Xcache.php @@ -74,6 +74,6 @@ class Xcache extends Common public function is_installed() { - return function_exists('xcache_get'); + return \function_exists('xcache_get'); } } diff --git a/src/Legacy/Dbs.php b/src/Legacy/Dbs.php index 782c6d4ba..ac04aae6e 100644 --- a/src/Legacy/Dbs.php +++ b/src/Legacy/Dbs.php @@ -51,7 +51,7 @@ class Dbs { $srv_name = $this->get_srv_name($srv_name_or_alias); - if (!is_object($this->srv[$srv_name])) { + if (!\is_object($this->srv[$srv_name])) { $this->srv[$srv_name] = new SqlDb($this->cfg[$srv_name]); $this->srv[$srv_name]->db_server = $srv_name; } diff --git a/src/Legacy/Group.php b/src/Legacy/Group.php index acdc7dd4b..3efe656db 100644 --- a/src/Legacy/Group.php +++ b/src/Legacy/Group.php @@ -24,7 +24,7 @@ class Group { global $datastore; - if (is_array($user_id)) { + if (\is_array($user_id)) { $user_id = implode(',', $user_id); } $user_groups_in = ($user_id !== 'all') ? "AND ug.user_id IN($user_id)" : ''; @@ -219,7 +219,7 @@ class Group */ public static function store_permissions($group_id, $auth_ary) { - if (empty($auth_ary) || !is_array($auth_ary)) { + if (empty($auth_ary) || !\is_array($auth_ary)) { return; } @@ -244,7 +244,7 @@ class Group */ private static function update_user_permissions($user_id = 'all') { - if (is_array($user_id)) { + if (\is_array($user_id)) { $user_id = implode(',', $user_id); } $delete_in = ($user_id !== 'all') ? " WHERE user_id IN($user_id)" : ''; diff --git a/src/Legacy/LogAction.php b/src/Legacy/LogAction.php index 26b083b0f..066ed063b 100644 --- a/src/Legacy/LogAction.php +++ b/src/Legacy/LogAction.php @@ -70,7 +70,7 @@ class LogAction } $sql_ary = [ - 'log_type_id' => (int)$this->log_type["$type_name"], + 'log_type_id' => (int)$this->log_type[(string)$type_name], 'log_user_id' => (int)$user_id, 'log_user_ip' => (string)$session_ip, 'log_forum_id' => (int)$forum_id, diff --git a/src/Legacy/Poll.php b/src/Legacy/Poll.php index 731cb8ff4..9bcbcaedd 100644 --- a/src/Legacy/Poll.php +++ b/src/Legacy/Poll.php @@ -51,7 +51,7 @@ class Poll } // проверять на "< 3" -- 2 варианта ответа + заголовок - if (count($this->poll_votes) < 3 || count($this->poll_votes) > $this->max_votes + 1) { + if (\count($this->poll_votes) < 3 || \count($this->poll_votes) > $this->max_votes + 1) { global $lang; return $this->err_msg = sprintf($lang['NEW_POLL_VOTES'], $this->max_votes); } diff --git a/src/Legacy/Post.php b/src/Legacy/Post.php index 3375cf80f..e2a1e3cad 100644 --- a/src/Legacy/Post.php +++ b/src/Legacy/Post.php @@ -368,7 +368,7 @@ class Post $orig_word = $replacement_word = array(); obtain_word_list($orig_word, $replacement_word); - if (count($orig_word)) { + if (\count($orig_word)) { $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); } @@ -376,8 +376,8 @@ class Post $unwatch_topic = make_url(TOPIC_URL . "$topic_id&unwatch=topic"); foreach ($watch_list as $row) { - /** @var TorrentPier\Legacy\Emailer() $emailer */ - $emailer = new TorrentPier\Legacy\Emailer(); + /** @var Emailer $emailer */ + $emailer = new Emailer; $emailer->set_from([$bb_cfg['board_email'] => $bb_cfg['sitename']]); $emailer->set_to([$row['user_email'] => $row['username']]); @@ -442,9 +442,9 @@ class Post return; } - $post_username = $post_subject = $post_text = $poster_ip = ''; + $post_username = $post_text = $poster_ip = ''; - $post_time = $current_time = TIMENOW; + $post_time = TIMENOW; if ($mode == 'after_move') { if (!$forum_id || !$old_forum_id) { diff --git a/src/Legacy/Sessions.php b/src/Legacy/Sessions.php index 56f403a53..12d00e173 100644 --- a/src/Legacy/Sessions.php +++ b/src/Legacy/Sessions.php @@ -22,7 +22,7 @@ class Sessions */ private static function ignore_cached_userdata() { - return defined('IN_PM') ? true : false; + return \defined('IN_PM') ? true : false; } /** diff --git a/src/Legacy/Sitemap.php b/src/Legacy/Sitemap.php index a81ae1ea6..7fa7afd1a 100644 --- a/src/Legacy/Sitemap.php +++ b/src/Legacy/Sitemap.php @@ -190,7 +190,7 @@ class Sitemap { $file = $url . urlencode($map); - if (function_exists('curl_init')) { + if (\function_exists('curl_init')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $file); diff --git a/src/Legacy/SqlDb.php b/src/Legacy/SqlDb.php index 4ec9baf4c..b28f536b5 100644 --- a/src/Legacy/SqlDb.php +++ b/src/Legacy/SqlDb.php @@ -127,7 +127,7 @@ class SqlDb if (!$this->link) { $this->init(); } - if (is_array($query)) { + if (\is_array($query)) { $query = $this->build_sql($query); } if (SQL_PREPEND_SRC_COMM) { @@ -258,7 +258,7 @@ class SqlDb $row = mysqli_fetch_assoc($result); if ($field_name) { - return isset($row[$field_name]) ? $row[$field_name] : false; + return $row[$field_name] ?? false; } return $row; @@ -389,13 +389,13 @@ class SqlDb } switch (true) { - case is_string($v): + case \is_string($v): return "'" . $this->escape_string($v) . "'"; - case is_int($v): - return "$v"; - case is_bool($v): + case \is_int($v): + return (string)$v; + case \is_bool($v): return ($v) ? '1' : '0'; - case is_float($v): + case \is_float($v): return "'$v'"; case null === $v: return 'NULL'; @@ -437,7 +437,7 @@ class SqlDb $dont_escape = $data_already_escaped; $check_type = $check_data_type_in_escape; - if (empty($input_ary) || !is_array($input_ary)) { + if (empty($input_ary) || !\is_array($input_ary)) { $this->trigger_error(__FUNCTION__ . ' - wrong params: $input_ary'); } @@ -733,7 +733,7 @@ class SqlDb } if ($this->link and $ext = mysqli_info($this->link)) { - $info[] = "$ext"; + $info[] = (string)$ext; } elseif (!$num && ($aff = $this->affected_rows($this->result) and $aff != -1)) { $info[] = "$aff rows"; } @@ -767,8 +767,8 @@ class SqlDb } } - if (!defined('IN_FIRST_SLOW_QUERY')) { - define('IN_FIRST_SLOW_QUERY', true); + if (!\defined('IN_FIRST_SLOW_QUERY')) { + \define('IN_FIRST_SLOW_QUERY', true); } CACHE('bb_cache')->set('dont_log_slow_query', $new_priority, $ignoring_time); @@ -898,7 +898,7 @@ class SqlDb $msg = implode(LOG_SEPR, $msg); $msg .= ($info = $this->query_info()) ? ' # ' . $info : ''; $msg .= ' # ' . $this->debug_find_source() . ' '; - $msg .= defined('IN_CRON') ? 'cron' : basename($_SERVER['REQUEST_URI']); + $msg .= \defined('IN_CRON') ? 'cron' : basename($_SERVER['REQUEST_URI']); bb_log($msg . LOG_LF, $log_file); } @@ -909,7 +909,7 @@ class SqlDb */ public function log_slow_query($log_file = 'sql_slow_bb') { - if (!defined('IN_FIRST_SLOW_QUERY') && CACHE('bb_cache')->get('dont_log_slow_query')) { + if (!\defined('IN_FIRST_SLOW_QUERY') && CACHE('bb_cache')->get('dont_log_slow_query')) { return; } $this->log_query($log_file); @@ -968,7 +968,7 @@ class SqlDb $query = "SELECT * FROM $m[1] WHERE $m[2]"; } - if (preg_match('#^SELECT#', $query)) { + if (0 === strpos($query, "SELECT")) { $html_table = false; if ($result = mysqli_query($this->link, "EXPLAIN $query")) { diff --git a/src/Legacy/Template.php b/src/Legacy/Template.php index 415112810..67261c87e 100644 --- a/src/Legacy/Template.php +++ b/src/Legacy/Template.php @@ -308,12 +308,12 @@ class Template if (false !== strpos($blockname, '.')) { // Nested block. $blocks = explode('.', $blockname); - $blockcount = count($blocks) - 1; + $blockcount = \count($blocks) - 1; $str = &$this->_tpldata; for ($i = 0; $i < $blockcount; $i++) { $str = &$str[$blocks[$i] . '.']; - $str = &$str[count($str) - 1]; + $str = &$str[\count($str) - 1]; } // Now we add the block that we're actually assigning to. // We're adding a new iteration to this block with the given @@ -405,7 +405,7 @@ class Template public function generate_block_varref($namespace, $varname) { // Strip the trailing period. - $namespace = substr($namespace, 0, strlen($namespace) - 1); + $namespace = substr($namespace, 0, -1); // Get a reference to the data block for this namespace. $varref = $this->generate_block_data_ref($namespace, true); @@ -436,7 +436,7 @@ class Template { // Get an array of the blocks involved. $blocks = explode('.', $blockname); - $blockcount = count($blocks) - 1; + $blockcount = \count($blocks) - 1; if ($include_last_iterator) { return '$' . $blocks[$blockcount] . '_item'; } @@ -461,7 +461,7 @@ class Template // Break it up into lines and put " -->" back. $code_lines = explode(' -->', $code); - $count = count($code_lines); + $count = \count($code_lines); for ($i = 0; $i < ($count - 1); $i++) { $code_lines[$i] .= ' -->'; } @@ -480,7 +480,7 @@ class Template // replace all short php tags $new_code = array(); - $line_count = count($code_lines); + $line_count = \count($code_lines); for ($i = 0; $i < $line_count; $i++) { $line = $code_lines[$i]; $pos = strpos($line, ' 0) { + if (\count($search) > 0) { $code = str_replace($search, $replace, $code); } // This will handle the remaining root-level varrefs @@ -782,7 +782,7 @@ class Template [^\s(),]+)/x', $tag_args, $match); $tokens = $match[0]; - $tokens_cnt = count($tokens); + $tokens_cnt = \count($tokens); $is_arg_stack = array(); for ($i = 0; $i < $tokens_cnt; $i++) { @@ -838,11 +838,11 @@ class Template case 'is': $is_arg_start = ($tokens[$i - 1] == ')') ? array_pop($is_arg_stack) : $i - 1; - $is_arg = implode(' ', array_slice($tokens, $is_arg_start, $i - $is_arg_start)); + $is_arg = implode(' ', \array_slice($tokens, $is_arg_start, $i - $is_arg_start)); - $new_tokens = $this->_parse_is_expr($is_arg, array_slice($tokens, $i + 1)); + $new_tokens = $this->_parse_is_expr($is_arg, \array_slice($tokens, $i + 1)); - array_splice($tokens, $is_arg_start, count($tokens), $new_tokens); + array_splice($tokens, $is_arg_start, \count($tokens), $new_tokens); $i = $is_arg_start; break; @@ -864,9 +864,9 @@ class Template } elseif (!empty($m[4])) { $token = ($tokens_cnt == 1) ? "!empty(\$V['{$m[4]}'])" : "\$V['{$m[4]}']"; } elseif (!empty($m[5])) { - $token = ($tokens_cnt == 1) ? "!empty({$m[5]})" : "{$m[5]}"; + $token = ($tokens_cnt == 1) ? "!empty({$m[5]})" : (string)($m[5]); } elseif (!empty($m[7])) { - $token = ($tokens_cnt == 1) ? "defined('{$m[7]}') && {$m[7]}" : "{$m[7]}"; + $token = ($tokens_cnt == 1) ? "defined('{$m[7]}') && {$m[7]}" : (string)($m[7]); } } break; @@ -983,13 +983,13 @@ class Template // adding language variable (eg: "english" or "german") // can be used to make truly multi-lingual templates - $this->vars['LANG'] = isset($this->vars['LANG']) ? $this->vars['LANG'] : $bb_cfg['default_lang']; + $this->vars['LANG'] = $this->vars['LANG'] ?? $bb_cfg['default_lang']; // adding current template $tpl = $this->root . '/'; - if (substr($tpl, 0, 2) === './') { - $tpl = substr($tpl, 2, strlen($tpl)); + if (0 === strpos($tpl, './')) { + $tpl = substr($tpl, 2, \strlen($tpl)); } - $this->vars['TEMPLATE'] = isset($this->vars['TEMPLATE']) ? $this->vars['TEMPLATE'] : $tpl; - $this->vars['TEMPLATE_NAME'] = isset($this->vars['TEMPLATE_NAME']) ? $this->vars['TEMPLATE_NAME'] : $this->tpl; + $this->vars['TEMPLATE'] = $this->vars['TEMPLATE'] ?? $tpl; + $this->vars['TEMPLATE_NAME'] = $this->vars['TEMPLATE_NAME'] ?? $this->tpl; } } diff --git a/src/Legacy/Torrent.php b/src/Legacy/Torrent.php index b425c03a8..f58b5ce73 100644 --- a/src/Legacy/Torrent.php +++ b/src/Legacy/Torrent.php @@ -332,7 +332,7 @@ class Torrent $ann = (@$tor['announce']) ? $tor['announce'] : ''; $announce_urls['main_url'] = $bb_cfg['bt_announce_url']; - if (!$ann || !in_array($ann, $announce_urls)) { + if (!$ann || !\in_array($ann, $announce_urls)) { $msg = sprintf($lang['INVALID_ANN_URL'], htmlspecialchars($ann), $announce_urls['main_url']); return self::torrent_error_exit($msg); } @@ -340,7 +340,7 @@ class Torrent $info = (@$tor['info']) ? $tor['info'] : array(); - if (!isset($info['name']) || !isset($info['piece length']) || !isset($info['pieces']) || strlen($info['pieces']) % 20 != 0) { + if (!isset($info['name'], $info['piece length'], $info['pieces']) || \strlen($info['pieces']) % 20 != 0) { return self::torrent_error_exit($lang['TORFILE_INVALID']); } @@ -363,7 +363,7 @@ class Torrent if (isset($info['length'])) { $totallen = (float)$info['length']; - } elseif (isset($info['files']) && is_array($info['files'])) { + } elseif (isset($info['files']) && \is_array($info['files'])) { foreach ($info['files'] as $fn => $f) { $totallen += (float)$f['length']; } @@ -550,7 +550,7 @@ class Torrent if (!empty($_COOKIE['explain'])) { $out = "attach path: $filename

"; - $tor['info']['pieces'] = '[...] ' . strlen($tor['info']['pieces']) . ' bytes'; + $tor['info']['pieces'] = '[...] ' . \strlen($tor['info']['pieces']) . ' bytes'; $out .= print_r($tor, true); bb_die("
$out
"); } diff --git a/src/Legacy/TorrentFileList.php b/src/Legacy/TorrentFileList.php index 353b1958f..e02334450 100644 --- a/src/Legacy/TorrentFileList.php +++ b/src/Legacy/TorrentFileList.php @@ -62,7 +62,7 @@ class TorrentFileList $info['name'] =& $info['name.utf-8']; } - if (isset($info['files']) && is_array($info['files'])) { + if (isset($info['files']) && \is_array($info['files'])) { $this->root_dir = isset($info['name']) ? '../' . clean_tor_dirname($info['name']) : '...'; $this->multiple = true; @@ -70,13 +70,13 @@ class TorrentFileList if (isset($f['path.utf-8'])) { $f['path'] =& $f['path.utf-8']; } - if (!isset($f['path']) || !is_array($f['path'])) { + if (!isset($f['path']) || !\is_array($f['path'])) { continue; } array_deep($f['path'], 'clean_tor_dirname'); $length = isset($f['length']) ? (float)$f['length'] : 0; - $subdir_count = count($f['path']) - 1; + $subdir_count = \count($f['path']) - 1; if ($subdir_count > 0) { $name = array_pop($f['path']); @@ -91,7 +91,7 @@ class TorrentFileList $cur_files_ary =& $cur_files_ary[$subdir]; if ($j === $subdir_count) { - if (is_string($cur_files_ary)) { + if (\is_string($cur_files_ary)) { $GLOBALS['bnc_error'] = 1; break; } diff --git a/src/Legacy/Validate.php b/src/Legacy/Validate.php index 9ba3ee158..1f88bf02a 100644 --- a/src/Legacy/Validate.php +++ b/src/Legacy/Validate.php @@ -93,7 +93,7 @@ class Validate if (!$email || !filter_var($email, FILTER_VALIDATE_EMAIL)) { return $lang['EMAIL_INVALID']; } - if (strlen($email) > USEREMAIL_MAX_LENGTH) { + if (\strlen($email) > USEREMAIL_MAX_LENGTH) { return $lang['EMAIL_TOO_LONG']; } diff --git a/src/Legacy/WordsRate.php b/src/Legacy/WordsRate.php index 2e49009cb..4f535cb47 100644 --- a/src/Legacy/WordsRate.php +++ b/src/Legacy/WordsRate.php @@ -46,7 +46,7 @@ class WordsRate $this->del_text_hl = $text; // длинное сообщение - if (strlen($text) > 600) { + if (\strlen($text) > 600) { return $this->words_rate; } // вырезаем цитаты если содержит +1 diff --git a/styles/templates/default/tpl_config.php b/styles/templates/default/tpl_config.php index 0dec63425..c57eafe00 100644 --- a/styles/templates/default/tpl_config.php +++ b/styles/templates/default/tpl_config.php @@ -10,7 +10,7 @@ global $bb_cfg, $page_cfg, $template, $images, $lang; $width = $height = array(); -$template_name = basename(dirname(__FILE__)); +$template_name = basename(__DIR__); $_img = BB_ROOT . 'styles/images/'; $_main = BB_ROOT . 'styles/' . basename(TEMPLATES_DIR) . '/' . $template_name . '/images/'; diff --git a/tracker.php b/tracker.php index 5752c6b57..808972542 100644 --- a/tracker.php +++ b/tracker.php @@ -690,8 +690,8 @@ if ($allowed_forums) { $passkey = DB()->fetch_row("SELECT auth_key FROM " . BB_BT_USERS . " WHERE user_id = " . (int)$user_id . " LIMIT 1"); // Build torrents table foreach (DB()->fetch_rowset($sql) as $tor) { - $dl = isset($tor['speed_down']) ? $tor['speed_down'] : 0; - $ul = isset($tor['speed_up']) ? $tor['speed_up'] : 0; + $dl = $tor['speed_down'] ?? 0; + $ul = $tor['speed_up'] ?? 0; $seeds = $tor['seeders']; $leechs = $tor['leechers']; diff --git a/viewforum.php b/viewforum.php index e5c4598de..8234e82dc 100644 --- a/viewforum.php +++ b/viewforum.php @@ -82,7 +82,7 @@ $mod_redirect_url = ''; $tor_status = -1; // all by default if ($is_auth['auth_mod']) { - $redirect = isset($_POST['redirect']) ? $_POST['redirect'] : $_SERVER['REQUEST_URI']; + $redirect = $_POST['redirect'] ?? $_SERVER['REQUEST_URI']; $redirect = url_arg($redirect, 'mod', 1, '&'); $mod_redirect_url = LOGIN_URL . "?redirect=$redirect&admin=1"; @@ -456,7 +456,7 @@ foreach ($topic_rowset as $topic) { 'TOR_STATUS_ICON' => isset($topic['tor_status']) ? $bb_cfg['tor_icons'][$topic['tor_status']] : '', 'TOR_STATUS_TEXT' => isset($topic['tor_status']) ? $lang['TOR_STATUS_NAME'][$topic['tor_status']] : '', - 'ATTACH' => isset($topic['topic_attachment']) ? $topic['topic_attachment'] : false, + 'ATTACH' => $topic['topic_attachment'] ?? false, 'STATUS' => $topic['topic_status'], 'TYPE' => $topic['topic_type'], 'DL' => ($topic['topic_dl_type'] == TOPIC_DL_TYPE_DL && !$forum_data['allow_reg_tracker']), diff --git a/viewtopic.php b/viewtopic.php index c9eba8d1b..7ac4df45d 100644 --- a/viewtopic.php +++ b/viewtopic.php @@ -182,7 +182,7 @@ $moderation = (!empty($_REQUEST['mod']) && $is_auth['auth_mod']); $mod_redirect_url = ''; if ($is_auth['auth_mod']) { - $redirect = isset($_POST['redirect']) ? $_POST['redirect'] : @$_SERVER['REQUEST_URI']; + $redirect = $_POST['redirect'] ?? @$_SERVER['REQUEST_URI']; $redirect = url_arg($redirect, 'mod', 1, '&'); $mod_redirect_url = LOGIN_URL . "?redirect=$redirect&admin=1"; @@ -798,7 +798,7 @@ foreach ($is_auth as $name => $is) { } $template->assign_vars(array( - 'PG_ROW_CLASS' => isset($pg_row_class) ? $pg_row_class : 'row1', + 'PG_ROW_CLASS' => $pg_row_class ?? 'row1', )); if (IS_ADMIN) {