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';
    if ($avatar_mode == 'remote' && preg_match('/^(http:\\/\\/)?([\\w\\-\\.]+)\\:?([0-9]*)\\/(.*)$/', $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) = @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) = @getimagesize($avatar_filename);
        }
    }
    if (!($imgtype = check_image_type($avatar_filetype, $error, $error_msg))) {
        return;
    }
    if ($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 != '') {
            if (file_exists(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $current_avatar))) {
                @unlink('./' . $board_config['avatar_path'] . '/' . $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';
            }
            $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;
}
Beispiel #2
0
//保存数据
if ($action == "save") {
    $check_info = 1;
    //检测输入内容
    if (trim($_POST['name']) == "") {
        $ActionMessage = $strErrNull;
        $check_info = 0;
        $action = $mark_id != "" ? "edit" : "add";
    }
    if ($check_info == 1 && trim($_POST['linkUrl']) == "") {
        $ActionMessage = $strErrNull;
        $check_info = 0;
        $action = $mark_id != "" ? "edit" : "add";
    }
    //检测链接图片的尺寸
    if ($check_info == 1 && !check_image_type($_FILES["linkImage"]["name"])) {
        $check_info = 0;
        $action = $mark_id != "" ? "edit" : "add";
        $ActionMessage = $strCategoryImage . $strImgTypeMemo;
    }
    if ($check_info == 1 && $_FILES["linkImage"]["name"] != "") {
        $arrISize = get_image_size($_FILES["linkImage"]["tmp_name"]);
        if ($arrISize[1] > 16 && $arrISize[3] > 16) {
            $check_info = 0;
            $ActionMessage = $strCategoryImageError;
            $action = $mark_id != "" ? "edit" : "add";
        } else {
            //上传图片
            $linkImage = upload_file($_FILES["linkImage"]["tmp_name"], $_FILES["linkImage"]["name"], "../attachments");
        }
    } else {
/**
 * function validatePicture.
 * 
 * validation for file upload from form
 * 
 * @param string $fieldname
 *  fieldname of input file form
 */
function validatePicture($fieldname)
{
    $error = '';
    if (!empty($_FILES[$fieldname]['error'])) {
        switch ($_FILES[$fieldname]['error']) {
            case '1':
                $error = 'Upload maximum file is ' . number_format(IMG_UPLOAD_MAX_SIZE / 1024, 2) . ' MB.';
                break;
            case '2':
                $error = 'File is too big, please upload with smaller size.';
                break;
            case '3':
                $error = 'File uploaded, but only halef of file.';
                break;
            case '4':
                $error = 'There is no File to upload';
                break;
            case '6':
                $error = 'Temporary folder not exists, Please try again.';
                break;
            case '7':
                $error = 'Failed to record File into disk.';
                break;
            case '8':
                $error = 'Upload file has been stop by extension.';
                break;
            case '999':
            default:
                $error = 'No error code avaiable';
        }
    } elseif (empty($_FILES[$fieldname]['tmp_name']) || $_FILES[$fieldname]['tmp_name'] == 'none') {
        $error = 'There is no File to upload.';
    } elseif ($_FILES[$fieldname]['size'] > IMG_UPLOAD_MAX_SIZE) {
        $error = 'Upload maximum file is ' . number_format(IMG_UPLOAD_MAX_SIZE / 1024, 2) . ' MB.';
    } else {
        //$get_ext = substr($_FILES[$fieldname]['name'],strlen($_FILES[$fieldname]['name'])-3,3);
        $cekfileformat = check_image_type($_FILES[$fieldname]);
        if (!$cekfileformat) {
            $error = 'Upload Picture only allow (jpg, gif, png)';
        }
    }
    return $error;
}
Beispiel #4
0
function avatar_upload($avatar_mode, &$current_avatar, &$current_type, $avatar_filename, $avatar_realname, $avatar_filesize, $avatar_filetype, &$avatar_error)
{
    global $config, $db;
    global $strAvatarErreurUrl, $strAvatarErreurConnexion, $strAvatarErreurData, $strAvatarErreurWrite, $strAvatarErreurFileSize, $strAvatarErreurXYSize, $strAvatarErreurFileType;
    /*** si c'est un upload remote ***/
    if ($avatar_mode == 'remote' && preg_match('/^(http:\\/\\/)?([\\w\\-\\.]+)\\:?([0-9]*)\\/(.*)$/', $avatar_filename, $url_ary)) {
        if (empty($url_ary[4])) {
            $avatar_error = true;
            show_erreur($strAvatarErreurUrl);
            return;
        }
        $base_get = '/' . $url_ary[4];
        $port = !empty($url_ary[3]) ? $url_ary[3] : 80;
        if (!($fsock = @fsockopen($url_ary[2], $port, $errno, $errstr))) {
            $avatar_error = true;
            show_erreur($strAvatarErreurConnexion);
            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, $config['avatar_filesize_max']);
        }
        @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)) {
            $avatar_error = true;
            show_erreur($strAvatarErreurData);
            return;
        }
        $avatar_filesize = $file_data1[1];
        $avatar_filetype = $file_data2[1];
        if ($avatar_filesize > 0 && $avatar_filesize < $config['avatar_filesize_max']) {
            $avatar_data = substr($avatar_data, strlen($avatar_data) - $avatar_filesize, $avatar_filesize);
            $tmp_path = $config['avatars_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);
                $avatar_error = true;
                show_erreur($strAvatarErreurWrite);
                return;
            }
            list($width, $height) = @getimagesize($tmp_filename);
        } else {
            $avatar_error = true;
            show_erreur("{$strAvatarErreurFileSize} (" . CoolSize($config['avatar_filesize_max']) . ")");
            return;
        }
    } elseif ($avatar_mode == 'local' && file_exists($avatar_filename)) {
        if ($avatar_filesize <= $config['avatar_filesize_max'] && $avatar_filesize > 0) {
            preg_match('#image\\/[x\\-]*([a-z]+)#', $avatar_filetype, $avatar_filetype);
            $avatar_filetype = $avatar_filetype[1];
        } else {
            $avatar_error = true;
            show_erreur("{$strAvatarErreurFileSize} (" . CoolSize($config['avatar_filesize_max']) . ")");
            return;
        }
        list($width, $height) = @getimagesize($avatar_filename);
    }
    if (!($imgtype = check_image_type($avatar_filetype))) {
        $avatar_error = true;
        show_erreur("{$strAvatarErreurFileType} ({$avatar_filetype})");
        return;
    }
    if ($width <= $config['avatar_x_max'] && $height <= $config['avatar_y_max']) {
        $new_filename = uniqid(rand()) . $imgtype;
        /*** si un avatar upload&eacute; existe deja pour l'entit&eacute;, on l'efface ***/
        if ($current_type == 'U' && $current_avatar != '') {
            if (file_exists($config['avatars_path'] . "/{$current_avatar}")) {
                @unlink($config['avatars_path'] . "/{$current_avatar}");
            }
        }
        if ($avatar_mode == 'remote') {
            @copy($tmp_filename, $config['avatars_path'] . "/{$new_filename}");
            @unlink($tmp_filename);
        } elseif ($avatar_mode == 'local') {
            @move_uploaded_file($avatar_filename, $config['avatars_path'] . "/{$new_filename}");
        }
        @chmod($config['avatars_path'] . "/{$new_filename}", 0777);
        $avatar_sql = "avatar = '{$new_filename}', avatar_type = 'U'";
    } else {
        $avatar_error = true;
        show_erreur("{$strAvatarErreurXYSize} (" . $config['avatar_x_max'] . "x" . $config['avatar_y_max'] . ")");
    }
    return $avatar_sql;
}
Beispiel #5
0
    settings_recache();
    header("location: setting.php");
    exit;
}
//保存
$err = 0;
if ($action == "save") {
    $checkinfo = true;
    $logo_file = $_FILES["logo"]["tmp_name"];
    $favicon_file = $_FILES["favicon"]["tmp_name"];
    //检测Logo & Favicon的尺寸
    if ($checkinfo && !check_image_type($_FILES["logo"]["name"])) {
        $checkinfo = false;
        $ActionMessage = $strLogo . $strImgTypeMemo;
    }
    if ($checkinfo && !check_image_type($_FILES["favicon"]["name"])) {
        $checkinfo = false;
        $ActionMessage = $strFavicon . $strImgTypeMemo;
    }
    //Save
    if ($checkinfo) {
        //上传Logo && Favicon文件
        if ($_FILES["logo"]["name"] != "") {
            $logo = upload_file($logo_file, $_FILES["logo"]["name"], "../attachments");
        }
        if ($_FILES["favicon"]["name"] != "") {
            $favicon = upload_file($favicon_file, $_FILES["favicon"]["name"], "../attachments");
        }
        //特殊处理
        /*$_POST['name']=encode($_POST['name']);
        		$_POST['master']=encode($_POST['master']);
Beispiel #6
0
     exit;
 }
 $file_size = $_FILES["media_file"]["size"];
 if ($file_size <= 125829120) {
     if ($_FILES["media_file"]["error"] == 0) {
         $video_ext = array('mp4', 'wmv', 'mov', 'avi');
         $ext = strtolower(end(explode('.', $_FILES["media_file"]['name'])));
         if (in_array($ext, $video_ext)) {
             $upload_dir1 = dirname(__FILE__) . '/upload/video_file';
             $tmp_name1 = $_FILES["media_file"]["tmp_name"];
             $file1 = time() . $_FILES["media_file"]['name'];
             $st1 = move_uploaded_file($tmp_name1, "{$upload_dir1}/{$file1}");
             $fileUrl = plugins_url() . "/video_sitemap_xml/upload/video_file/{$file1}";
             $html_data = '[video url="' . $fileUrl;
             if ($_FILES["media_thumb"]["error"] == 0) {
                 if (check_image_type($_FILES["media_thumb"]['name'])) {
                     $upload_dir2 = dirname(__FILE__) . '/upload/thumb';
                     $tmp_name2 = $_FILES["media_thumb"]["tmp_name"];
                     $file2 = time() . $_FILES["media_thumb"]['name'];
                     $st2 = move_uploaded_file($tmp_name2, "{$upload_dir2}/{$file2}");
                     $thumbUrl = plugins_url() . "/video_sitemap_xml/upload/thumb/{$file2}";
                     $html_data .= '" thumb="' . $thumbUrl;
                 } else {
                     echo '<div id="err" style="color:#FF0000;" align="center">Valid allowed file types :jpg,jpeg,gif,png</div>';
                     exit;
                 }
             }
             $html_data .= '"]';
         } else {
             echo '<div id="err"  style="color:#FF0000;" align="center">Please select only video File i.e(mp4, wmv, mov, avi) file</div>';
             exit;
    echo $file_title ? substr($file_title, 0, strrpos($file_title, ".")) : "&nbsp;";
    ?>
                  </td>
                  <td width="16%" nowrap class="subcontent-td">
                    <?php 
    echo formatFileSize(filesize($basedir . $filelist[$index]));
    ?>
                  </td>
                  <td width="16%" nowrap class="subcontent-td">
                    <?php 
    echo format_time("L", filemtime($basedir . $filelist[$index]));
    ?>
                  </td>
                  <td width="5%" nowrap class="subcontent-td" align="center">
                    <?php 
    if (check_image_type($basedir . $filelist[$index])) {
        ?>
                    <a href="<?php 
        echo $basedir . $filelist[$index];
        ?>
" target="_blank"><img src="<?php 
        echo $basedir . $filelist[$index];
        ?>
" width="30" height="30"/></a>
                    <?php 
    } else {
        ?>
                    &nbsp;
                    <?php 
    }
    ?>
Beispiel #8
0
function avatar_upload($remote, &$userinfo, $avatar_filename, $avatar)
{
    require_once CORE_PATH . 'classes/cpg_file.php';
    global $MAIN_CFG, $db, $lang;
    if ($remote) {
        if (!preg_match('/^(http:\\/\\/)?([\\w\\-\\.]+)\\:?([0-9]*)\\/(.*)$/', $avatar_filename, $url_ary) || empty($url_ary[4])) {
            cpg_error('The URL you entered is incomplete');
        }
        $avatar = get_fileinfo($avatar_filename, !$MAIN_CFG['avatar']['animated'], true);
        if (!isset($avatar['size'])) {
            cpg_error(_AVATAR_ERR_DATA);
        } elseif ($avatar['animation'] && !$MAIN_CFG['avatar']['animated']) {
            cpg_error('Animated avatar not allowed');
        }
        $avatar_filesize = $avatar['size'];
        $avatar_filetype = $avatar['type'];
        $imgtype = check_image_type($avatar_filetype);
        if ($avatar['size'] > 0 && $avatar['size'] < $MAIN_CFG['avatar']['filesize']) {
            $new_filename = $userinfo['user_id'] . '_' . uniqid(rand()) . $imgtype;
            $avatar_filename = $MAIN_CFG['avatar']['path'] . "/{$new_filename}";
            if (CPG_File::write($avatar_filename, $avatar['data']) != $avatar['size']) {
                trigger_error('Could not write avatar to local storage', E_USER_ERROR);
            }
        }
    } else {
        $avatar_filesize = $avatar['size'];
        $avatar_filetype = $avatar['type'];
        $imgtype = check_image_type($avatar_filetype);
        $new_filename = $userinfo['user_id'] . '_' . uniqid(rand()) . $imgtype;
        $avatar_filename = $MAIN_CFG['avatar']['path'] . "/{$new_filename}";
        if (!CPG_File::move_upload($avatar, $avatar_filename)) {
            trigger_error('Could not copy avatar to local storage', E_USER_ERROR);
        }
        if (!$MAIN_CFG['avatar']['animated'] && ($fp = fopen($avatar_filename, 'rb'))) {
            $data = fread($fp, $avatar_filesize);
            fclose($fp);
            $data = preg_split('/\\x00[\\x00-\\xFF]\\x00\\x2C/', $data);
            // split GIF frames
            if (count($data) > 2) {
                unlink($avatar_filename);
                cpg_error('Animated avatar not allowed');
            }
            unset($data);
        }
    }
    if ($avatar_filesize < 40 || $avatar_filesize > $MAIN_CFG['avatar']['filesize']) {
        unlink($avatar_filename);
        cpg_error(sprintf(_AVATAR_FILESIZE, round($MAIN_CFG['avatar']['filesize'] / 1024)));
    }
    avatar_size($avatar_filename, true);
    avatar_delete($userinfo);
    return "user_avatar='{$new_filename}', user_avatar_type=1";
}
Beispiel #9
0
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;
}