Аватарка для фф (проблема)

  • Автор темы TyTuKeT
  • Дата начала
Статус
В этой теме нельзя размещать новые ответы.
TyTuKeT
Участник
Сообщения
219
Реакции
37
Имеется данный модуль. Вся проблема в том что при выборе изображения, оно загружается и переименовывается в md5 и становится черным просто черным квадратом, в то время когда оригинал лежит рядом не тронутым. Переименовывается понятно почему, что бы не было дубликата названия и так же изображение сжимается по размерам. Вопрос почему оно становится черным квадратом? Распространяется на все форматы изображения.
PHP:
<div class="s-bk-lf">
    <div class="acc-title">Настройки</div>
</div>
<center><div class="silver-bk">
<div class="clr"></div>   
<?

if (isset($_FILES['file'])) {
    $f_err     = 0; //вспомогательная переменная
    $types     = array(
        '.jpg',
        '.JPG',
        '.jpeg',
        '.gif',
        '.png'
    ); //поддерживаемые форматы загружаемых файлов
    $max_size  = 502050; //максимальный размер загружаемого файла (5000-МБ)
    $path      = 'avatar/'; //директория для загрузки
    $path_mini = 'avatar/'; //директория для загрузки миниатюры
    $fname     = $_FILES['file']['name'];
    //$fname = md5($fname);
    $ext       = substr($fname, strpos($fname, '.'), strlen($fname) - 1); //определяем тип загружаемого файла

    //проверка на соответствие формата
    if (!in_array($ext, $types)) {
        $f_err++;
        $mess = '<p style="color:red;">Загружаемый файл не является картинкой</p>';
    }

    //проверка размера файла
    if (filesize($_FILES['file']['tmp_name']) > $max_size) {
        $f_err++;
        $mess = '<p style="color:red;">Размер загружаемой картинки превышает 5 Мб</p>';
    }

    //если файл успешно прошел проверку
    //перемещаем его в заданную директорию из временной
    if ($f_err == 0) {
        move_uploaded_file($_FILES['file']['tmp_name'], $path . $fname);

        //путь к загруженному файлу
        $source_src = $path . $fname;

        //создаем путь и имя миниатюры
        $new_name     = md5($fname) . $ext;
        $resource_src = $path_mini . $new_name;

        //получаем параметры загруженного файла
        $params = getimagesize($source_src);

        switch ($params[2]) {
            case 1:
                $source = imagecreatefromgif($source_src);
                break;
            case 2:
                $source = imagecreatefromjpeg($source_src);
                break;
        }

        //если высота больше ширины
        //вычисляем новую ширину
        if ($params[1] > $params[0]) {
            $newheight = 150;
            $newwidth  = floor($newheight * $params[0] / $params[1]);
        }
        //если ширина больше высоты
        //вычисляем новую высоту
        if ($params[1] < $params[0]) {
            $newwidth  = 150;
            $newheight = floor($newwidth * $params[1] / $params[0]);
        }

        //создаем миниатюру загруженного изображения
        $resource = imagecreatetruecolor($newwidth, $newheight);
        imagecopyresampled($resource, $source, 0, 0, 0, 0, $newwidth, $newheight, $params[0], $params[1]);
        imagejpeg($resource, $resource_src, 100); //80 качество изображения

        //назначаем права доступа
        chmod("$source_src", 0644);
        chmod("$resource_src", 0644);

        //выводим сообщение
        $mess = '<center><br><p style="color:green;">Изображение загружено !</p></center>';
        $ok   = 1;
    }

//include("session.inc.php");
$file = str_replace($server['DOCUMENT_ROOT'], '/', $path_mini . $new_name); // получить путь вида '/img/avatars/15.jpg'
//mysql_query("UPDATE members SET avatar='$file' WHERE id='$userid';"); //Добавление в БД.
$db->Query("UPDATE ".$pref."_users_a SET ava = '$file' WHERE id = '$usid'");

header('Refresh: 1;URL=/account/config/');


}



if(empty($user_data['ava'])) {
echo '<center><img src="/img/c50.gif"></center>';
}else{
echo '<center><img src="/'.$user_data['ava'].'"></center>';
}
?>


<center><b>Настройки профиля</b></center>
<BR />
<?PHP
    if(isset($_POST["name"])){
   
        $name = $db->RealEscape($_POST['name']);
        $pol = intval($_POST['pol']);
        $db->Query("UPDATE ".$pref."_users_a SET name = '$name', pol = '$pol' WHERE id = '$usid'");
   
        echo "<center><font color = 'green'><b>Данные сохранены</b></font></center><BR />";
    }
?>


<form action="" method="post">
<table width="330" border="0" align="center">
  <tr>
    <td><b>Имя:</b></td>
    <td align="center"><input type="text" name="name" value="<?=$user_data['name']; ?>"/></td>
  </tr>
  <tr>
    <td><b>Пол:</b></td>
    <td align="center"><select name="pol">
    <option value="1">Муж
    <option value="2">Жен
    </select></td>
  </tr>
 
  <tr>
    <td align="center" colspan="2"><BR /><input type="submit" value="Сохранить" /></td>
  </tr>
</table>
</form>






<center><h3>Загрузка аватара</h3></center>

<!--вывод сообщений--><?= $mess ?>

<center>   
<p><form method="POST"  enctype="multipart/form-data" name="form33">
<table id="upload1" ><tr><td>
</td> <td><span class="psevdoFile"><input id="psevdoFileValue" class="inputFileText" value="выберете файл" style="color:#828282;" type="text"/>
    <input class="fileInput" type="file" size="1" onchange="document.getElementById('psevdoFileValue').value = this.value" name="file"/>
    </span></td></tr></tr>
</table>

<table>
<tr><td><br><input type='submit' name='submit' class='pictures-btn' value='Загрузить'></a></td></tr>
</table></form></p>
</center>
 
Дмитий
Участник
Сообщения
133
Реакции
14
Skype
а где ты её установил ?
 
Дмитий
Участник
Сообщения
133
Реакции
14
Skype
я понял ! но где именно ?
в личном кабинете или над меню,где?
 
TyTuKeT
Участник
Сообщения
219
Реакции
37
Дмитий написал(а):
я понял ! но где именно ?
в личном кабинете или над меню,где?
Разницы то никакой где её ставить
 
blackyar24
Готов помочь
Участник
Сообщения
237
Реакции
25
самим модулем не поделишься?
 
TyTuKeT
Участник
Сообщения
219
Реакции
37
blackyar24 написал(а):
самим модулем не поделишься?
Дек вот он.кнопку сделаи загрузить фото и все.он не работает.не обращает как надо.
 
perforator1994
Участник
Сообщения
106
Реакции
2
Можешь БД мод этот модуль дать?
 
Snopak
Участник
Сообщения
22
Реакции
1
TyTuKeT написал(а):
Имеется данный модуль. Вся проблема в том что при выборе изображения, оно загружается и переименовывается в md5 и становится черным просто черным квадратом, в то время когда оригинал лежит рядом не тронутым. Переименовывается понятно почему, что бы не было дубликата названия и так же изображение сжимается по размерам. Вопрос почему оно становится черным квадратом? Распространяется на все форматы изображения.
PHP:
<div class="s-bk-lf">
    <div class="acc-title">Настройки</div>
</div>
<center><div class="silver-bk">
<div class="clr"></div>  
<?

if (isset($_FILES['file'])) {
    $f_err     = 0; //вспомогательная переменная
    $types     = array(
        '.jpg',
        '.JPG',
        '.jpeg',
        '.gif',
        '.png'
    ); //поддерживаемые форматы загружаемых файлов
    $max_size  = 502050; //максимальный размер загружаемого файла (5000-МБ)
    $path      = 'avatar/'; //директория для загрузки
    $path_mini = 'avatar/'; //директория для загрузки миниатюры
    $fname     = $_FILES['file']['name'];
    //$fname = md5($fname);
    $ext       = substr($fname, strpos($fname, '.'), strlen($fname) - 1); //определяем тип загружаемого файла

    //проверка на соответствие формата
    if (!in_array($ext, $types)) {
        $f_err++;
        $mess = '<p style="color:red;">Загружаемый файл не является картинкой</p>';
    }

    //проверка размера файла
    if (filesize($_FILES['file']['tmp_name']) > $max_size) {
        $f_err++;
        $mess = '<p style="color:red;">Размер загружаемой картинки превышает 5 Мб</p>';
    }

    //если файл успешно прошел проверку
    //перемещаем его в заданную директорию из временной
    if ($f_err == 0) {
        move_uploaded_file($_FILES['file']['tmp_name'], $path . $fname);

        //путь к загруженному файлу
        $source_src = $path . $fname;

        //создаем путь и имя миниатюры
        $new_name     = md5($fname) . $ext;
        $resource_src = $path_mini . $new_name;

        //получаем параметры загруженного файла
        $params = getimagesize($source_src);

        switch ($params[2]) {
            case 1:
                $source = imagecreatefromgif($source_src);
                break;
            case 2:
                $source = imagecreatefromjpeg($source_src);
                break;
        }

        //если высота больше ширины
        //вычисляем новую ширину
        if ($params[1] > $params[0]) {
            $newheight = 150;
            $newwidth  = floor($newheight * $params[0] / $params[1]);
        }
        //если ширина больше высоты
        //вычисляем новую высоту
        if ($params[1] < $params[0]) {
            $newwidth  = 150;
            $newheight = floor($newwidth * $params[1] / $params[0]);
        }

        //создаем миниатюру загруженного изображения
        $resource = imagecreatetruecolor($newwidth, $newheight);
        imagecopyresampled($resource, $source, 0, 0, 0, 0, $newwidth, $newheight, $params[0], $params[1]);
        imagejpeg($resource, $resource_src, 100); //80 качество изображения

        //назначаем права доступа
        chmod("$source_src", 0644);
        chmod("$resource_src", 0644);

        //выводим сообщение
        $mess = '<center><br><p style="color:green;">Изображение загружено !</p></center>';
        $ok   = 1;
    }

//include("session.inc.php");
$file = str_replace($server['DOCUMENT_ROOT'], '/', $path_mini . $new_name); // получить путь вида '/img/avatars/15.jpg'
//mysql_query("UPDATE members SET avatar='$file' WHERE id='$userid';"); //Добавление в БД.
$db->Query("UPDATE ".$pref."_users_a SET ava = '$file' WHERE id = '$usid'");

header('Refresh: 1;URL=/account/config/');


}



if(empty($user_data['ava'])) {
echo '<center><img src="/img/c50.gif"></center>';
}else{
echo '<center><img src="/'.$user_data['ava'].'"></center>';
}
?>


<center><b>Настройки профиля</b></center>
<BR />
<?PHP
    if(isset($_POST["name"])){
  
        $name = $db->RealEscape($_POST['name']);
        $pol = intval($_POST['pol']);
        $db->Query("UPDATE ".$pref."_users_a SET name = '$name', pol = '$pol' WHERE id = '$usid'");
  
        echo "<center><font color = 'green'><b>Данные сохранены</b></font></center><BR />";
    }
?>


<form action="" method="post">
<table width="330" border="0" align="center">
  <tr>
    <td><b>Имя:</b></td>
    <td align="center"><input type="text" name="name" value="<?=$user_data['name']; ?>"/></td>
  </tr>
  <tr>
    <td><b>Пол:</b></td>
    <td align="center"><select name="pol">
    <option value="1">Муж
    <option value="2">Жен
    </select></td>
  </tr>

  <tr>
    <td align="center" colspan="2"><BR /><input type="submit" value="Сохранить" /></td>
  </tr>
</table>
</form>






<center><h3>Загрузка аватара</h3></center>

<!--вывод сообщений--><?= $mess ?>

<center>  
<p><form method="POST"  enctype="multipart/form-data" name="form33">
<table id="upload1" ><tr><td>
</td> <td><span class="psevdoFile"><input id="psevdoFileValue" class="inputFileText" value="выберете файл" style="color:#828282;" type="text"/>
    <input class="fileInput" type="file" size="1" onchange="document.getElementById('psevdoFileValue').value = this.value" name="file"/>
    </span></td></tr></tr>
</table>

<table>
<tr><td><br><input type='submit' name='submit' class='pictures-btn' value='Загрузить'></a></td></tr>
</table></form></p>
</center>
Анимированную вставляешь картинку или обычную?
 
TyTuKeT
Участник
Сообщения
219
Реакции
37
  • #10
Snopak написал(а):
Анимированную вставляешь картинку или обычную?
Обычная 409х439 размер. Да я уже решил эту проблему с другой фермы выдернул
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху