diff options
author | Meik Sievertsen <acydburn@phpbb.com> | 2007-02-22 16:20:11 +0000 |
---|---|---|
committer | Meik Sievertsen <acydburn@phpbb.com> | 2007-02-22 16:20:11 +0000 |
commit | 97a8eb40139ddb299754a883508c9250ef544f36 (patch) | |
tree | 43ca2cbc3ebccdc2f8043e0c7f81acbd219efa13 /phpBB | |
parent | 87c3b60b179132e8e2d7b0b794b81f566d0558ad (diff) | |
download | forums-97a8eb40139ddb299754a883508c9250ef544f36.tar forums-97a8eb40139ddb299754a883508c9250ef544f36.tar.gz forums-97a8eb40139ddb299754a883508c9250ef544f36.tar.bz2 forums-97a8eb40139ddb299754a883508c9250ef544f36.tar.xz forums-97a8eb40139ddb299754a883508c9250ef544f36.zip |
trying to fix two conversion issues
- anonymous user not entered correctly or entered with user id 0 (need to be tested)
- ips not converted
git-svn-id: file:///svn/phpbb/trunk@7034 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/includes/functions_convert.php | 6 | ||||
-rw-r--r-- | phpBB/includes/session.php | 35 | ||||
-rw-r--r-- | phpBB/install/convertors/functions_phpbb20.php | 24 | ||||
-rw-r--r-- | phpBB/viewtopic.php | 7 |
4 files changed, 59 insertions, 13 deletions
diff --git a/phpBB/includes/functions_convert.php b/phpBB/includes/functions_convert.php index 914311c2b8..5acaae113b 100644 --- a/phpBB/includes/functions_convert.php +++ b/phpBB/includes/functions_convert.php @@ -309,10 +309,10 @@ function decode_ip($int_ip) $hexipbang = explode('.', chunk_split($int_ip, 2, '.')); - // Any mod changing the way ips are stored? Then we are not able to convert. - if (sizeof($hexipbang) != 4) + // Any mod changing the way ips are stored? Then we are not able to convert... + if (sizeof($hexipbang) < 4) { - return ''; + return '127.0.0.1'; } return hexdec($hexipbang[0]) . '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]); diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php index 71e83fbd11..6033691637 100644 --- a/phpBB/includes/session.php +++ b/phpBB/includes/session.php @@ -1024,6 +1024,41 @@ class session } /** + * Check if URI is blacklisted + * This should be called only where absolutly necessary, for example on the submitted website field + * This function is not in use at the moment and is only included for testing purposes, it may not work at all! + * This means it is untested at the moment and therefore commented out + * + * @param string $uri URI to check + * @return true if uri is on blacklist, else false. Only blacklist is checked (~zero FP), no grey lists + function check_uribl($uri) + { + // Normally parse_url() is not intended to parse uris + // We need to get the top-level domain name anyway... change. + $uri = parse_url($uri); + + if ($uri === false || empty($uri['host'])) + { + return false; + } + + $uri = trim($uri['host']); + + if ($uri) + { + // One problem here... the return parameter for the "windows" method is different from what + // we expect... this may render this check useless... + if (phpbb_checkdnsrr($uri . '.multi.uribl.com.', 'A') === true) + { + return true; + } + } + + return false; + } + */ + + /** * Set/Update a persistent login key * * This method creates or updates a persistent session key. When a user makes diff --git a/phpBB/install/convertors/functions_phpbb20.php b/phpBB/install/convertors/functions_phpbb20.php index 8f6328a928..2c53e5ccd1 100644 --- a/phpBB/install/convertors/functions_phpbb20.php +++ b/phpBB/install/convertors/functions_phpbb20.php @@ -436,16 +436,6 @@ function phpbb_get_birthday($birthday = '') */ function phpbb_user_id($user_id) { - if (!$user_id) - { - return 0; - } - - if ($user_id == -1) - { - return ANONYMOUS; - } - global $config; // Increment user id if the old forum is having a user with the id 1 @@ -484,6 +474,19 @@ function phpbb_user_id($user_id) } } + // If the old user id is -1 in 2.0.x it is the anonymous user... + if ($user_id == -1) + { + return ANONYMOUS; + } + + // This should never ever happen - 2.0.x is not allowing a user id of 0 + // But we return the anonymous user to be consistent and not breaking functionality + if (!$user_id) + { + return ANONYMOUS; + } + if (!empty($config['increment_user_id'])) { $user_id++; @@ -1125,6 +1128,7 @@ function phpbb_prepare_message($message) $message = preg_replace('/\[quote="(.*?)"\]/s', '[quote="\1"]', $message); } + // Already the new user id ;) $user_id = $convert->row['poster_id']; $message = str_replace('<', '<', $message); diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 1c05af3d11..2898d56e72 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -1215,6 +1215,13 @@ $template->assign_vars(array( $first_unread = $post_unread = false; for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) { + // A non-existing rowset only happens if there was no user present for the entered poster_id + // This could be a broken posts table. + if (!isset($rowset[$post_list[$i]])) + { + continue; + } + $row =& $rowset[$post_list[$i]]; $poster_id = $row['user_id']; |