Commit: 7b318e66e326bc7c3c08cb7f3489784191f4205d Author: Sobak <msobaczew...@gmail.com> Sun, 21 Dec 2014 06:56:23 +0100 Parents: 41ddbc8f0568eb6be46c065897d5c7465d2cad82 Branches: master
Link: http://git.php.net/?p=web/bugs.git;a=commitdiff;h=7b318e66e326bc7c3c08cb7f3489784191f4205d Log: Rework fix for previous bug Prefer checking function existance over next global variables Changed paths: M include/functions.php M include/php_versions.php M www/report.php Diff: diff --git a/include/functions.php b/include/functions.php index 7ed8ae3..d2a9abe 100644 --- a/include/functions.php +++ b/include/functions.php @@ -690,11 +690,12 @@ function show_reason_types($current = '', $expanded = 0) */ function show_version_options($current, $default = '') { - global $ROOT_DIR, $versions; + global $ROOT_DIR; $use = 0; echo '<option value="">--Please Select--</option>' , "\n"; + require "{$ROOT_DIR}/include/php_versions.php"; foreach($versions as $v) { echo '<option'; if ($current == $v) { @@ -1274,7 +1275,7 @@ function is_valid_email($email, $phpnet_allowed = true) */ function incoming_details_are_valid($in, $initial = 0, $logged_in = false) { - global $bug, $dbh, $bug_types, $versions; + global $bug, $dbh, $bug_types, $ROOT_DIR; $errors = array(); if (!is_array($in)) { @@ -1294,6 +1295,8 @@ function incoming_details_are_valid($in, $initial = 0, $logged_in = false) $errors[] = 'Please select a valid PHP version. If your PHP version is too old, please upgrade first and see if the problem has not already been fixed.'; } + require "{$ROOT_DIR}/include/php_versions.php"; + if (empty($in['php_version']) || ($initial && !in_array($in['php_version'], $versions))) { $errors[] = 'Please select a valid PHP version.'; } diff --git a/include/php_versions.php b/include/php_versions.php index bce8492..3ea5f21 100644 --- a/include/php_versions.php +++ b/include/php_versions.php @@ -26,80 +26,83 @@ $versions = array_merge($versions, $custom_versions); - function buildVersions() { - $dev_versions = json_decode(file_get_contents('http://qa.php.net/api.php?type=qa-releases&format=json&only=dev_versions')); - - $versions = array(); - - $date = date('Y-m-d'); - $default_versions = array( - "Git-{$date} (snap)", - "Git-{$date} (Git)", - ); - - foreach ($dev_versions as $dev_version) { - $dev_version_parts = parseVersion($dev_version); - - // if it is a dev version, then add that branch, add the minor-1 version, if it's appropriate - if ($dev_version_parts['type'] == 'dev') { - if (!isset($versions[$dev_version_parts['major']][$dev_version_parts['minor']])) { - $versions[$dev_version_parts['major']][$dev_version_parts['minor']] = array(); + if (!function_exists('buildVersions')) { + function buildVersions() { + $dev_versions = json_decode(file_get_contents('http://qa.php.net/api.php?type=qa-releases&format=json&only=dev_versions')); + + $versions = array(); + + $date = date('Y-m-d'); + $default_versions = array( + "Git-{$date} (snap)", + "Git-{$date} (Git)", + ); + + foreach ($dev_versions as $dev_version) { + $dev_version_parts = parseVersion($dev_version); + + // if it is a dev version, then add that branch, add the minor-1 version, if it's appropriate + if ($dev_version_parts['type'] == 'dev') { + if (!isset($versions[$dev_version_parts['major']][$dev_version_parts['minor']])) { + $versions[$dev_version_parts['major']][$dev_version_parts['minor']] = array(); + } + } + // then it is a qa version (alpha|beta|rc) + else { + $versions[$dev_version_parts['major']][$dev_version_parts['minor']][$dev_version_parts['micro']] = $dev_version_parts; + ksort($versions[$dev_version_parts['major']][$dev_version_parts['minor']]); } } - // then it is a qa version (alpha|beta|rc) - else { - $versions[$dev_version_parts['major']][$dev_version_parts['minor']][$dev_version_parts['micro']] = $dev_version_parts; - ksort($versions[$dev_version_parts['major']][$dev_version_parts['minor']]); - } - } - $stable_releases = json_decode(file_get_contents('http://us3.php.net/releases/active.php'), true); - foreach ($stable_releases as $major => $major_releases) { - foreach ($major_releases as $release) { - $version_parts = parseVersion($release['version']); - $versions[$version_parts['major']][$version_parts['minor']][$version_parts['micro']] = $version_parts; - ksort($versions[$version_parts['major']][$version_parts['minor']]); + $stable_releases = json_decode(file_get_contents('http://us3.php.net/releases/active.php'), true); + foreach ($stable_releases as $major => $major_releases) { + foreach ($major_releases as $release) { + $version_parts = parseVersion($release['version']); + $versions[$version_parts['major']][$version_parts['minor']][$version_parts['micro']] = $version_parts; + ksort($versions[$version_parts['major']][$version_parts['minor']]); + } } - } - $flat_versions = array(); + $flat_versions = array(); - // add master to the end of the list - foreach ($default_versions as $default_version) { - $flat_versions[] = 'master-'.$default_version; - } + // add master to the end of the list + foreach ($default_versions as $default_version) { + $flat_versions[] = 'master-'.$default_version; + } - // add the fetched versions to the list - foreach ($versions as $major_number => $major) { - foreach ($major as $minor_number => $minor) { - // add the default versions to ever minor branch - foreach ($default_versions as $default_version) { - $flat_versions[] = $major_number.'.'.$minor_number.$default_version; - } - foreach ($minor as $micro_number => $micro) { - $flat_versions[] = $micro['original_version']; + // add the fetched versions to the list + foreach ($versions as $major_number => $major) { + foreach ($major as $minor_number => $minor) { + // add the default versions to ever minor branch + foreach ($default_versions as $default_version) { + $flat_versions[] = $major_number.'.'.$minor_number.$default_version; + } + foreach ($minor as $micro_number => $micro) { + $flat_versions[] = $micro['original_version']; + } } } - } - // reverse the order, this makes it descending - $flat_versions = array_reverse($flat_versions); + // reverse the order, this makes it descending + $flat_versions = array_reverse($flat_versions); - return $flat_versions; + return $flat_versions; + } } - - function parseVersion($version){ - $version_parts = array(); - $raw_parts = array(); - preg_match('#(?P<major>\d+)\.(?P<minor>\d+).(?P<micro>\d+)[-]?(?P<type>RC|alpha|beta|dev)?(?P<number>[\d]?).*#ui', $version, $raw_parts); - $version_parts = array( - 'major' => $raw_parts['major'], - 'minor' => $raw_parts['minor'], - 'micro' => $raw_parts['micro'], - 'type' => strtolower($raw_parts['type']?$raw_parts['type']:'stable'), - 'number' => $raw_parts['number'], - 'original_version' => $version, - ); - return $version_parts; + if (!function_exists('parseVersion')) { + function parseVersion($version){ + $version_parts = array(); + $raw_parts = array(); + preg_match('#(?P<major>\d+)\.(?P<minor>\d+).(?P<micro>\d+)[-]?(?P<type>RC|alpha|beta|dev)?(?P<number>[\d]?).*#ui', $version, $raw_parts); + $version_parts = array( + 'major' => $raw_parts['major'], + 'minor' => $raw_parts['minor'], + 'micro' => $raw_parts['micro'], + 'type' => strtolower($raw_parts['type']?$raw_parts['type']:'stable'), + 'number' => $raw_parts['number'], + 'original_version' => $version, + ); + return $version_parts; + } } diff --git a/www/report.php b/www/report.php index 80b13f5..a36397a 100644 --- a/www/report.php +++ b/www/report.php @@ -19,8 +19,6 @@ bugs_authenticate($user, $pw, $logged_in, $user_flags); $is_trusted_developer = ($user_flags & BUGS_TRUSTED_DEV); $is_security_developer = ($user_flags & BUGS_SECURITY_DEV); -require "{$ROOT_DIR}/include/php_versions.php"; - // captcha is not necessary if the user is logged in if (!$logged_in) { require_once 'Text/CAPTCHA/Numeral.php'; -- PHP Webmaster List Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php