diff options
author | Paul S. Owen <psotfx@users.sourceforge.net> | 2002-03-23 14:56:51 +0000 |
---|---|---|
committer | Paul S. Owen <psotfx@users.sourceforge.net> | 2002-03-23 14:56:51 +0000 |
commit | 18c2f78c9c2aa6852df4dafb1298704b2f7279ca (patch) | |
tree | 1b0629aba7e29f651942cb0f03c8e2be08f1f3bf /phpBB/includes | |
parent | c2ded8a7aa253afaacb63ed6a987e600b0a92af8 (diff) | |
download | forums-18c2f78c9c2aa6852df4dafb1298704b2f7279ca.tar forums-18c2f78c9c2aa6852df4dafb1298704b2f7279ca.tar.gz forums-18c2f78c9c2aa6852df4dafb1298704b2f7279ca.tar.bz2 forums-18c2f78c9c2aa6852df4dafb1298704b2f7279ca.tar.xz forums-18c2f78c9c2aa6852df4dafb1298704b2f7279ca.zip |
Fix issues with quotes in profile fields and avatars
git-svn-id: file:///svn/phpbb/trunk@2412 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/usercp_avatar.php | 25 | ||||
-rw-r--r-- | phpBB/includes/usercp_register.php | 62 |
2 files changed, 36 insertions, 51 deletions
diff --git a/phpBB/includes/usercp_avatar.php b/phpBB/includes/usercp_avatar.php index 18e0c573d6..b5b0fb1a02 100644 --- a/phpBB/includes/usercp_avatar.php +++ b/phpBB/includes/usercp_avatar.php @@ -85,11 +85,11 @@ function user_avatar_url($mode, &$error, &$error_msg, $avatar_filename) } -function user_avatar_upload($mode, $avatar_mode, $user_id, &$error, &$error_msg, $avatar_filename, $avatar_realname, $avatar_filesize, $avatar_filetype) +function user_avatar_upload($mode, $avatar_mode, &$current_avatar, &$current_type, &$error, &$error_msg, $avatar_filename, $avatar_realname, $avatar_filesize, $avatar_filetype) { - global $board_config, $db, $lang, $images; + global $board_config, $user_ip, $db, $lang; - $ini_val = ( phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; + $ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; if ( $avatar_mode == 'remote' && preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/', $avatar_filename, $url_ary) ) { @@ -135,8 +135,8 @@ function user_avatar_upload($mode, $avatar_mode, $user_id, &$error, &$error_msg, { $avatar_data = substr($avatar_data, strlen($avatar_data) - $avatar_filesize, $avatar_filesize); - $tmp_path = ( !@$ini_val('safe_mode') ) ? '/tmp' : './' . $board_config['avatar_path'] . "/tmp"; - $tmp_filename = tempnam($tmp_path, $userdata['user_id'] . '-'); + $tmp_path = ( !@$ini_val('safe_mode') ) ? '/tmp' : './' . $board_config['avatar_path'] . '/tmp'; + $tmp_filename = tempnam($tmp_path, uniqid($user_ip) . '-'); $fptr = @fopen($tmp_filename, 'wb'); $bytes_written = @fwrite($fptr, $avatar_data, $avatar_filesize); @@ -162,9 +162,6 @@ function user_avatar_upload($mode, $avatar_mode, $user_id, &$error, &$error_msg, { if ( $avatar_filesize <= $board_config['avatar_filesize'] && $avatar_filesize > 0 ) { - // - // Opera appends the image name after the type, not big, not clever! - // preg_match("'image\/[x\-]*([a-z]+)'", $avatar_filetype, $avatar_filetype); $avatar_filetype = $avatar_filetype[1]; } @@ -187,13 +184,13 @@ function user_avatar_upload($mode, $avatar_mode, $user_id, &$error, &$error_msg, if ( $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height'] ) { - $new_filename = $user_id . $imgtype; + $new_filename = ( $current_avatar != '' && $mode != 'register' ) ? $current_avatar : uniqid($user_ip) . $imgtype; - if ( $mode == 'editprofile' && $userdata['user_avatar_type'] == USER_AVATAR_UPLOAD && $userdata['user_avatar'] != '') + if ( $mode == 'editprofile' && $current_type == USER_AVATAR_UPLOAD && $current_avatar != '' ) { - if ( file_exists('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar']) ) + if ( file_exists('./' . $board_config['avatar_path'] . '/' . $current_avatar) ) { - @unlink('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar']); + @unlink('./' . $board_config['avatar_path'] . '/' . $current_avatar); } } @@ -206,7 +203,7 @@ function user_avatar_upload($mode, $avatar_mode, $user_id, &$error, &$error_msg, { if ( @$ini_val('open_basedir') != '' ) { - if ( phpversion() < '4.0.3' ) + if ( @phpversion() < '4.0.3' ) { message_die(GENERAL_ERROR, 'open_basedir is set and your PHP version does not allow move_uploaded_file', '', __LINE__, __FILE__); } @@ -223,7 +220,7 @@ function user_avatar_upload($mode, $avatar_mode, $user_id, &$error, &$error_msg, @chmod('./' . $board_config['avatar_path'] . "/$new_filename", 0777); - $avatar_sql = ( $mode == 'editprofile' ) ? ", user_avatar = '$new_filename', user_avatar_type = " . USER_AVATAR_UPLOAD : "'$avatar_filename', " . USER_AVATAR_UPLOAD; + $avatar_sql = ( $mode == 'editprofile' ) ? ", user_avatar = '$new_filename', user_avatar_type = " . USER_AVATAR_UPLOAD : "'$new_filename', " . USER_AVATAR_UPLOAD; } else { diff --git a/phpBB/includes/usercp_register.php b/phpBB/includes/usercp_register.php index 7be735fac2..a1692c1fc0 100644 --- a/phpBB/includes/usercp_register.php +++ b/phpBB/includes/usercp_register.php @@ -147,8 +147,7 @@ if ( isset($HTTP_POST_VARS['submit']) || isset($HTTP_POST_VARS['avatargallery']) $user_avatar_local = ( isset($HTTP_POST_VARS['avatarselect']) && !empty($HTTP_POST_VARS['submitavatar']) && $board_config['allow_avatar_local'] ) ? $HTTP_POST_VARS['avatarselect'] : ( ( isset($HTTP_POST_VARS['avatarlocal']) ) ? $HTTP_POST_VARS['avatarlocal'] : '' ); $user_avatar_remoteurl = ( !empty($HTTP_POST_VARS['avatarremoteurl']) ) ? trim($HTTP_POST_VARS['avatarremoteurl']) : ''; - $user_avatar_url = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim($HTTP_POST_VARS['avatarurl']) : ''; - $user_avatar_loc = ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : ''; + $user_avatar_upload = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim($HTTP_POST_VARS['avatarurl']) : ( ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : '' ); $user_avatar_name = ( !empty($HTTP_POST_FILES['avatar']['name']) ) ? $HTTP_POST_FILES['avatar']['name'] : ''; $user_avatar_size = ( !empty($HTTP_POST_FILES['avatar']['size']) ) ? $HTTP_POST_FILES['avatar']['size'] : 0; $user_avatar_filetype = ( !empty($HTTP_POST_FILES['avatar']['type']) ) ? $HTTP_POST_FILES['avatar']['type'] : ''; @@ -337,23 +336,12 @@ if ( isset($HTTP_POST_VARS['submit']) ) { $avatar_sql = user_avatar_delete($userdata['avatar_type'], $userdata['avatar_file']); } - else if ( ( $user_avatar_loc != '' || !empty($user_avatar_url) || !empty($user_avatar_name) ) && $board_config['allow_avatar_upload'] ) + else if ( !empty($user_avatar_upload) && $board_config['allow_avatar_upload'] ) { - if ( !empty($user_avatar_loc) && !empty($user_avatar_url) ) + if ( !empty($user_avatar_upload) ) { - $error = true; - $error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $lang['Only_one_avatar']; - } - - $id = ( $mode == 'register' ) ? $new_user_id : $userdata['user_id']; - - if ( !empty($user_avatar_loc) ) - { - $avatar_sql = user_avatar_upload($mode, 'local', $id, $error, $error_msg, $user_avatar_loc, $user_avatar_name, $user_avatar_size, $user_avatar_filetype); - } - else if ( !empty($user_avatar_url) ) - { - $avatar_sql = user_avatar_upload($mode, 'remote', $id, $error, $error_msg, $user_avatar_url, $user_avatar_name, $user_avatar_size, $user_avatar_filetype); + $avatar_mode = ( !empty($user_avatar_name) ) ? 'local' : 'remote'; + $avatar_sql = user_avatar_upload($mode, $avatar_mode, $userdata['user_avatar'], $userdata['user_avatar_type'], $error, $error_msg, $user_avatar_upload, $user_avatar_name, $user_avatar_size, $user_avatar_filetype); } else if ( !empty($user_avatar_name) ) { @@ -611,14 +599,14 @@ if ( $error ) $password_confirm = ''; $icq = stripslashes($icq); - $aim = str_replace('+', ' ', stripslashes($aim)); - $msn = stripslashes($msn); - $yim = stripslashes($yim); - - $website = stripslashes($website); - $location = stripslashes($location); - $occupation = stripslashes($occupation); - $interests = stripslashes($interests); + $aim = htmlspecialchars(str_replace('+', ' ', stripslashes($aim))); + $msn = htmlspecialchars(stripslashes($msn)); + $yim = htmlspecialchars(stripslashes($yim)); + + $website = htmlspecialchars(stripslashes($website)); + $location = htmlspecialchars(stripslashes($location)); + $occupation = htmlspecialchars(stripslashes($occupation)); + $interests = htmlspecialchars(stripslashes($interests)); $signature = stripslashes($signature); $user_lang = stripslashes($user_lang); @@ -628,22 +616,22 @@ if ( $error ) else if ( $mode == 'editprofile' && !isset($HTTP_POST_VARS['avatargallery']) && !isset($HTTP_POST_VARS['submitavatar']) && !isset($HTTP_POST_VARS['cancelavatar']) ) { $user_id = $userdata['user_id']; - $username = $userdata['username']; + $username = htmlspecialchars($userdata['username']); $email = $userdata['user_email']; - $password = ""; - $password_confirm = ""; + $password = ''; + $password_confirm = ''; $icq = $userdata['user_icq']; - $aim = str_replace('+', ' ', $userdata['user_aim']); - $msn = $userdata['user_msnm']; - $yim = $userdata['user_yim']; - - $website = $userdata['user_website']; - $location = $userdata['user_from']; - $occupation = $userdata['user_occ']; - $interests = $userdata['user_interests']; + $aim = htmlspecialchars(str_replace('+', ' ', $userdata['user_aim'])); + $msn = htmlspecialchars($userdata['user_msnm']); + $yim = htmlspecialchars($userdata['user_yim']); + + $website = htmlspecialchars($userdata['user_website']); + $location = htmlspecialchars($userdata['user_from']); + $occupation = htmlspecialchars($userdata['user_occ']); + $interests = htmlspecialchars($userdata['user_interests']); $signature_bbcode_uid = $userdata['user_sig_bbcode_uid']; - $signature = ( $signature_bbcode_uid != "" ) ? preg_replace("/\:(([a-z0-9]:)?)$signature_bbcode_uid/si", '', $userdata['user_sig']) : $userdata['user_sig']; + $signature = ( $signature_bbcode_uid != '' ) ? preg_replace("/\:(([a-z0-9]:)?)$signature_bbcode_uid/si", '', $userdata['user_sig']) : $userdata['user_sig']; $viewemail = $userdata['user_viewemail']; $notifypm = $userdata['user_notify_pm']; |