コード例 #1
0
 if ($signature != '') {
     if (strlen($signature) > $board_config['max_sig_chars']) {
         $error = TRUE;
         $error_msg .= (isset($error_msg) ? '<br />' : '') . $lang['Signature_too_long'];
     }
     if ($signature_bbcode_uid == '') {
         $signature_bbcode_uid = $allowbbcode ? make_bbcode_uid() : '';
     }
     $signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid);
 }
 if ($website != '') {
     rawurlencode($website);
 }
 $avatar_sql = '';
 if (isset($HTTP_POST_VARS['avatardel']) && $mode == 'editprofile') {
     $avatar_sql = user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']);
 }
 if ((!empty($user_avatar_upload) || !empty($user_avatar_name)) && $board_config['allow_avatar_upload']) {
     if (!empty($user_avatar_upload)) {
         $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)) {
             $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024));
             $error = true;
             $error_msg .= (!empty($error_msg) ? '<br />' : '') . $l_avatar_size;
         }
     }
 } else {
     if ($user_avatar_remoteurl != '' && $board_config['allow_avatar_remote']) {
         if (@file_exists(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar'])) && $userdata['user_avatar_type'] == USER_AVATAR_UPLOAD) {
コード例 #2
0
ファイル: usercp_avatar.php プロジェクト: rotvulpix/php-nuke
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;
    $ini_val = @phpversion() >= '4.0.0' ? 'ini_get' : 'get_cfg_var';
    $width = $height = 0;
    $type = '';
    if ($avatar_mode == 'remote' && preg_match('/^(http:\\/\\/)?([\\w\\-\\.]+)\\:?([0-9]*)\\/([^ \\?&=\\#\\"\\n\\r\\t<]*?(\\.(jpg|jpeg|gif|png)))$/', $avatar_filename, $url_ary)) {
        if (empty($url_ary[4])) {
            $error = true;
            $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $lang['Incomplete_URL'] : $lang['Incomplete_URL'];
            return;
        }
        $base_get = '/' . $url_ary[4];
        $port = !empty($url_ary[3]) ? $url_ary[3] : 80;
        if (!($fsock = @fsockopen($url_ary[2], $port, $errno, $errstr))) {
            $error = true;
            $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $lang['No_connection_URL'] : $lang['No_connection_URL'];
            return;
        }
        @fputs($fsock, "GET {$base_get} HTTP/1.1\r\n");
        @fputs($fsock, "HOST: " . $url_ary[2] . "\r\n");
        @fputs($fsock, "Connection: close\r\n\r\n");
        unset($avatar_data);
        while (!@feof($fsock)) {
            $avatar_data .= @fread($fsock, $board_config['avatar_filesize']);
        }
        @fclose($fsock);
        if (!preg_match('#Content-Length\\: ([0-9]+)[^ /][\\s]+#i', $avatar_data, $file_data1) || !preg_match('#Content-Type\\: image/[x\\-]*([a-z]+)[\\s]+#i', $avatar_data, $file_data2)) {
            $error = true;
            $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $lang['File_no_data'] : $lang['File_no_data'];
            return;
        }
        $avatar_filesize = $file_data1[1];
        $avatar_filetype = $file_data2[1];
        if (!$error && $avatar_filesize > 0 && $avatar_filesize < $board_config['avatar_filesize']) {
            $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, uniqid(rand()) . '-');
            $fptr = @fopen($tmp_filename, 'wb');
            $bytes_written = @fwrite($fptr, $avatar_data, $avatar_filesize);
            @fclose($fptr);
            if ($bytes_written != $avatar_filesize) {
                @unlink($tmp_filename);
                message_die(GENERAL_ERROR, 'Could not write avatar file to local storage. Please contact the board administrator with this message', '', __LINE__, __FILE__);
            }
            list($width, $height, $type) = @getimagesize($tmp_filename);
        } else {
            $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024));
            $error = true;
            $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $l_avatar_size : $l_avatar_size;
        }
    } else {
        if (file_exists(@phpbb_realpath($avatar_filename)) && preg_match('/\\.(jpg|jpeg|gif|png)$/i', $avatar_realname)) {
            if ($avatar_filesize <= $board_config['avatar_filesize'] && $avatar_filesize > 0) {
                preg_match('#image\\/[x\\-]*([a-z]+)#', $avatar_filetype, $avatar_filetype);
                $avatar_filetype = $avatar_filetype[1];
            } else {
                $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024));
                $error = true;
                $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $l_avatar_size : $l_avatar_size;
                return;
            }
            list($width, $height, $type) = @getimagesize($avatar_filename);
        }
    }
    if (!($imgtype = check_image_type($avatar_filetype, $error, $error_msg))) {
        return;
    }
    switch ($type) {
        // GIF
        case 1:
            if ($imgtype != '.gif') {
                @unlink($tmp_filename);
                message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__);
            }
            break;
            // JPG, JPC, JP2, JPX, JB2
        // JPG, JPC, JP2, JPX, JB2
        case 2:
        case 9:
        case 10:
        case 11:
        case 12:
            if ($imgtype != '.jpg' && $imgtype != '.jpeg') {
                @unlink($tmp_filename);
                message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__);
            }
            break;
            // PNG
        // PNG
        case 3:
            if ($imgtype != '.png') {
                @unlink($tmp_filename);
                message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__);
            }
            break;
        default:
            @unlink($tmp_filename);
            message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__);
    }
    if ($width > 0 && $height > 0 && $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height']) {
        $new_filename = uniqid(rand()) . $imgtype;
        if ($mode == 'editprofile' && $current_type == USER_AVATAR_UPLOAD && $current_avatar != '') {
            user_avatar_delete($current_type, $current_avatar);
        }
        if ($avatar_mode == 'remote') {
            @copy($tmp_filename, './' . $board_config['avatar_path'] . "/{$new_filename}");
            @unlink($tmp_filename);
        } else {
            if (@$ini_val('open_basedir') != '') {
                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__);
                }
                $move_file = 'move_uploaded_file';
            } else {
                $move_file = 'copy';
            }
            if (!is_uploaded_file($avatar_filename)) {
                message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__);
            }
            $move_file($avatar_filename, './' . $board_config['avatar_path'] . "/{$new_filename}");
        }
        @chmod('./' . $board_config['avatar_path'] . "/{$new_filename}", 0777);
        $avatar_sql = $mode == 'editprofile' ? ", user_avatar = '{$new_filename}', user_avatar_type = " . USER_AVATAR_UPLOAD : "'{$new_filename}', " . USER_AVATAR_UPLOAD;
    } else {
        $l_avatar_size = sprintf($lang['Avatar_imagesize'], $board_config['avatar_max_width'], $board_config['avatar_max_height']);
        $error = true;
        $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $l_avatar_size : $l_avatar_size;
    }
    return $avatar_sql;
}
コード例 #3
0
ファイル: usercp_register.php プロジェクト: noikiy/owaspbwa
             }
         }
     }
 }
 if ($signature != '') {
     if (strlen($signature) > $board_config['max_sig_chars']) {
         $error = TRUE;
         $error_msg .= (isset($error_msg) ? '<br />' : '') . $lang['Signature_too_long'];
     }
     if ($signature_bbcode_uid == '') {
         $signature_bbcode_uid = $allowbbcode ? make_bbcode_uid() : '';
     }
     $signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid);
 }
 if (isset($HTTP_POST_VARS['avatardel']) && $mode == 'editprofile') {
     $avatar_sql = user_avatar_delete($userdata['avatar_type'], $userdata['avatar_file']);
 } else {
     if ((!empty($user_avatar_upload) || !empty($user_avatar_name)) && $board_config['allow_avatar_upload']) {
         if (!empty($user_avatar_upload)) {
             $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)) {
                 $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024));
                 $error = true;
                 $error_msg .= (!empty($error_msg) ? '<br />' : '') . $l_avatar_size;
             }
         }
     } else {
         if ($user_avatar_remoteurl != '' && $board_config['allow_avatar_remote']) {
             $avatar_sql = user_avatar_url($mode, $error, $error_msg, $user_avatar_remoteurl);
コード例 #4
0
 if (isset($_POST['avatardel']) && $mode == 'editprofile') {
     $avatar_sql = user_avatar_delete($user->data['user_avatar_type'], $user->data['user_avatar']);
 } elseif ((!empty($user_avatar_upload) || !empty($user_avatar_name)) && $config['allow_avatar_upload']) {
     if (!empty($user_avatar_upload)) {
         $avatar_mode = empty($user_avatar_name) ? 'remote' : 'local';
         $avatar_sql = user_avatar_upload($mode, $avatar_mode, $user->data['user_avatar'], $user->data['user_avatar_type'], $error, $error_msg, $user_avatar_upload, $user_avatar_name, $user_avatar_size, $user_avatar_filetype);
     } elseif (!empty($user_avatar_name)) {
         $l_avatar_size = sprintf($lang['Avatar_filesize'], round($config['avatar_filesize'] / 1024));
         $error = true;
         $error_msg .= (!empty($error_msg) ? '<br />' : '') . $l_avatar_size;
     }
 } elseif ($user_avatar_remoteurl != '' && $config['allow_avatar_remote']) {
     user_avatar_delete($user->data['user_avatar_type'], $user->data['user_avatar']);
     $avatar_sql = user_avatar_url($mode, $error, $error_msg, $user_avatar_remoteurl);
 } elseif ($user_avatar_local != '' && $config['allow_avatar_local']) {
     user_avatar_delete($user->data['user_avatar_type'], $user->data['user_avatar']);
     $avatar_sql = user_avatar_gallery($mode, $error, $error_msg, $user_avatar_local, $user_avatar_category);
 } elseif ($user_avatar_generator != '' && $config['allow_avatar_generator']) {
     if (@file_exists(@phpbb_realpath('./' . $config['avatar_path'] . '/' . $user->data['user_avatar']))) {
         @unlink(@phpbb_realpath('./' . $config['avatar_path'] . '/' . $user->data['user_avatar']));
     }
     $avatar_sql = user_avatar_generator($mode, $error, $error_msg, $user_avatar_generator);
 } elseif ($user_gravatar != '' && $config['enable_gravatars']) {
     $avatar_sql = $mode == 'editprofile' ? ", user_avatar = '" . $db->sql_escape($user_gravatar) . "', user_avatar_type = " . USER_GRAVATAR : '';
 }
 // Start add - Gender Mod
 if ($config['gender_required']) {
     if (!$gender) {
         $error = true;
         $error_msg .= (isset($error_msg) ? '<br />' : '') . $lang['Gender_require'];
     }
コード例 #5
0
ファイル: usercp_avatar.php プロジェクト: ALTUN69/icy_phoenix
function user_avatar_upload($mode, $avatar_mode, &$current_avatar, &$current_type, &$error, &$error_msg, $avatar_filename, $avatar_realname, $avatar_filesize, $avatar_filetype)
{
    global $db, $cache, $config, $lang;
    $ini_val = @phpversion() >= '4.0.0' ? 'ini_get' : 'get_cfg_var';
    $width = $height = 0;
    $type = '';
    if ($avatar_mode == 'remote' && preg_match('/^(http:\\/\\/)?([\\w\\-\\.]+)\\:?([0-9]*)\\/([^ \\?&=\\#\\"\\n\\r\\t<]*?(\\.(jpg|jpeg|gif|png)))$/', $avatar_filename, $url_ary)) {
        if (empty($url_ary[4])) {
            $error = true;
            $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $lang['Incomplete_URL'] : $lang['Incomplete_URL'];
            return;
        }
        $base_get = '/' . $url_ary[4];
        $port = !empty($url_ary[3]) ? $url_ary[3] : 80;
        if (!($fsock = @fsockopen($url_ary[2], $port, $errno, $errstr))) {
            $error = true;
            $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $lang['No_connection_URL'] : $lang['No_connection_URL'];
            return;
        }
        @fwrite($fsock, "GET {$base_get} HTTP/1.1\r\n");
        @fwrite($fsock, "HOST: " . $url_ary[2] . "\r\n");
        @fwrite($fsock, "Connection: close\r\n\r\n");
        unset($avatar_data);
        while (!@feof($fsock)) {
            $avatar_data .= @fread($fsock, $config['avatar_filesize']);
        }
        @fclose($fsock);
        if (!preg_match('#Content-Length\\: ([0-9]+)[^ /][\\s]+#i', $avatar_data, $file_data1) || !preg_match('#Content-Type\\: image/[x\\-]*([a-z]+)[\\s]+#i', $avatar_data, $file_data2)) {
            $error = true;
            $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $lang['File_no_data'] : $lang['File_no_data'];
            return;
        }
        $avatar_filesize = $file_data1[1];
        $avatar_filetype = $file_data2[1];
        if (!$error && $avatar_filesize > 0 && $avatar_filesize < $config['avatar_filesize']) {
            $avatar_data = substr($avatar_data, strlen($avatar_data) - $avatar_filesize, $avatar_filesize);
            $tmp_path = !@$ini_val('safe_mode') ? '/tmp' : './' . $config['avatar_path'] . '/tmp';
            $tmp_filename = tempnam($tmp_path, uniqid(rand()) . '-');
            $fptr = @fopen($tmp_filename, 'wb');
            $bytes_written = @fwrite($fptr, $avatar_data, $avatar_filesize);
            @fclose($fptr);
            if ($bytes_written != $avatar_filesize) {
                @unlink($tmp_filename);
                message_die(GENERAL_ERROR, 'Could not write avatar file to local storage. Please contact the board administrator with this message', '', __LINE__, __FILE__);
            }
            list($width, $height, $type) = @getimagesize($tmp_filename);
        } else {
            $l_avatar_size = sprintf($lang['Avatar_filesize'], round($config['avatar_filesize'] / 1024));
            $error = true;
            $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $l_avatar_size : $l_avatar_size;
        }
    } elseif (file_exists(@phpbb_realpath($avatar_filename)) && preg_match('/\\.(jpg|jpeg|gif|png)$/i', $avatar_realname)) {
        if ($avatar_filesize <= $config['avatar_filesize'] && $avatar_filesize > 0) {
            preg_match('#image\\/[x\\-]*([a-z]+)#', $avatar_filetype, $avatar_filetype);
            $avatar_filetype = $avatar_filetype[1];
        } else {
            $l_avatar_size = sprintf($lang['Avatar_filesize'], round($config['avatar_filesize'] / 1024));
            $error = true;
            $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $l_avatar_size : $l_avatar_size;
            return;
        }
        list($width, $height, $type) = @getimagesize($avatar_filename);
    }
    if (!($imgtype = check_image_type($avatar_filetype, $error, $error_msg))) {
        return;
    }
    switch ($type) {
        // GIF
        case 1:
            if ($imgtype != '.gif') {
                @unlink($tmp_filename);
                message_die(GENERAL_ERROR, $lang['UNABLE_TO_UPLOAD_AVATAR'], '', __LINE__, __FILE__);
            }
            break;
            // JPG, JPC, JP2, JPX, JB2
        // JPG, JPC, JP2, JPX, JB2
        case 2:
        case 9:
        case 10:
        case 11:
        case 12:
            if ($imgtype != '.jpg' && $imgtype != '.jpeg') {
                @unlink($tmp_filename);
                message_die(GENERAL_ERROR, $lang['UNABLE_TO_UPLOAD_AVATAR'], '', __LINE__, __FILE__);
            }
            break;
            // PNG
        // PNG
        case 3:
            if ($imgtype != '.png') {
                @unlink($tmp_filename);
                message_die(GENERAL_ERROR, $lang['UNABLE_TO_UPLOAD_AVATAR'], '', __LINE__, __FILE__);
            }
            break;
        default:
            @unlink($tmp_filename);
            message_die(GENERAL_ERROR, $lang['UNABLE_TO_UPLOAD_AVATAR'], '', __LINE__, __FILE__);
    }
    // Automatic Avatar Resize - BEGIN
    // If you want tu use Avatar Resize function, you have to change the line below and decomment the block named AUTOMATIC AVATAR RESIZE some lines below.
    //if ($width > 0 && $height > 0)
    // Automatic Avatar Resize - END
    if ($width > 0 && $height > 0 && $width <= $config['avatar_max_width'] && $height <= $config['avatar_max_height']) {
        $new_filename = uniqid(rand()) . $imgtype;
        if ($mode == 'editprofile' && $current_type == USER_AVATAR_UPLOAD && $current_avatar != '') {
            user_avatar_delete($current_type, $current_avatar);
        }
        if ($avatar_mode == 'remote') {
            @copy($tmp_filename, './' . $config['avatar_path'] . "/{$new_filename}");
            @unlink($tmp_filename);
        } else {
            if (@$ini_val('open_basedir') != '') {
                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__);
                }
                $move_file = 'move_uploaded_file';
            } else {
                $move_file = 'copy';
            }
            if (!is_uploaded_file($avatar_filename)) {
                message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__);
            }
            $move_file($avatar_filename, './' . $config['avatar_path'] . "/{$new_filename}");
        }
        @chmod('./' . $config['avatar_path'] . "/{$new_filename}", 0777);
        // Automatic Avatar Resize - BEGIN
        /*
        if ($width > $config['avatar_max_width'] || $height > $config['avatar_max_height'])
        {
        	$width_old = $width;
        	$height_old = $height;
        	if ($width > $config['avatar_max_width'])
        	{
        		$height = ($config['avatar_max_width'] / $width) * $height;
        		$width = $config['avatar_max_width'];
        	}
        	if ($height > $config['avatar_max_height'])
        	{
        		$width = ($config['avatar_max_height'] / $height) * $width;
        		$height = $config['avatar_max_height'];
        	}
        	$width = round($width);   // to avoid float->integer conversion problems
        	$height = round($height); // to avoid float->integer conversion problems
        	switch ($imgtype)
        	{
        		case '.jpg':
        			$imagecreatefrom_function = 'imagecreatefromjpeg';
        			$image_function = 'imagejpeg';
        			break;
        		case '.gif':
        			$imagecreatefrom_function = 'imagecreatefromgif';
        			$image_function = 'imagegif';
        			break;
        		case '.png':
        			$imagecreatefrom_function = 'imagecreatefrompng';
        			$image_function = 'imagepng';
        			break;
        	}
        	$img_old = $imagecreatefrom_function ('./' . $config['avatar_path'] . "/$new_filename");
        	$img_new = imagecreatetruecolor ($width, $height);
        	imagecopyresampled ($img_new, $img_old, 0, 0, 0, 0, $width, $height, $width_old, $height_old);
        	$image_function ($img_new, './' . $config['avatar_path'] . "/$new_filename");
        	imagedestroy ($img_new);
        }
        */
        // Automatic Avatar Resize - END
        $avatar_sql = $mode == 'editprofile' ? ", user_avatar = '" . $db->sql_escape($new_filename) . "', user_avatar_type = " . USER_AVATAR_UPLOAD : "'" . $db->sql_escape($new_filename) . "', " . USER_AVATAR_UPLOAD;
    } else {
        $l_avatar_size = sprintf($lang['Avatar_imagesize'], $config['avatar_max_width'], $config['avatar_max_height']);
        $error = true;
        $error_msg = !empty($error_msg) ? $error_msg . '<br />' . $l_avatar_size : $l_avatar_size;
    }
    return $avatar_sql;
}