[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP + GD-библиотека НЕТ КОНТАКТА
heavenly
Здравствуйте ! у меня имеется галерея - код абсолютно правильный ! Но у меня ошибка вылетает - когда Я загружаю картинку. Т.е. загружаю картинку в базу - она попадает в стандартном виде и уменьшеном ! уменьшеный вид попадает на страницу, а после при нажатии на маленькую картинку открывается большая !Ошибка следующая при обратке картинки в маленькую:

Фото УСПЕШНО загружено: XXX.jpg (Размер: 20908 байт)
Notice: Undefined index: mime in C:\Temp\Apache2\HTML\20\tumbmaker.php on line 23

Notice: Undefined index: mime in C:\Temp\Apache2\HTML\20\tumbmaker.php on line 23
Ошибка МАСШАБИРОВАНИЯ фото! Поблемы с GD-библиотекой! Обратитесь к Администратору

Линии соответствует такой код : $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));

библиотека Я посмотрел в php.ini подключена и прописана ! и что тогда может быть и как быть ?! запускаю через Апач на localhost !!
ПОМОГИТЕ ПОЖАЛУЙСТА ЛЮДИ !



Спустя 12 минут (5.05.2009 - 18:26) waldicom написал(а):
Всегда нравились такие утверждения.
Цитата
у меня имеется галерея - код абсолютно правильный !

ОК, а как же тогда
Цитата
Но у меня ошибка вылетает

?
Значит не абсолютно правильный?

Теперь к ошибке:
Цитата
Notice: Undefined index: mime in C:\Temp\Apache2\HTML\20\tumbmaker.php on line 23

и
PHP
$format strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));


Думаем. Думаем! Еще думаем! Не понятно?
ОК, смотрим на общее слово в обеих строчках, это слово mime, Undefined index переврдится неопределенный индекс. Что из этого следует? Следует то, что в $size['mime'] ничего нету по причине озвученной выше.
Вопросы:
- откуда берется массив $size?

Спустя 19 минут, 26 секунд (5.05.2009 - 18:45) heavenly написал(а):
Простите немного не так написал в теме ! Дело в том что Я скачал готовую галлерею ! она рабочая абсолютно - видел ей пользовались на нескольких сайтах даже для демонстрации - даже есть сайт этой галереи ! но дело в том что Я там написал в теме на форуме - но молчат весь день ! вот Я и думал может мне тут помогут ! а то нужно ее запустить мне ! если ни у кого не возникало такой фигни как у меня - то значит дело в чем-то другом .... Я вот и думал может в php присоед. а апачу... не знаю ! строго не судите меня - помогите разобраться пожалуйста ! sad.gif

Спустя 7 минут, 11 секунд (5.05.2009 - 18:53) waldicom написал(а):
Вопросы:
- откуда берется массив $size?

Спустя 8 минут, 56 секунд (5.05.2009 - 19:02) heavenly написал(а):
PHP
Функция img_resize(): генерация thumbnails
Параметры
:
  
$src             имя исходного файла
  $dest            
имя генерируемого файла
  $width
$height  ширина и высота генерируемого изображенияв пикселях
Необязательные параметры
:
  
$rgb             цвет фонапо умолчанию белый
  $quality         
качество генерируемого JPEGпо умолчанию максимальное (100)
***********************************************************************
function 
img_resize($src$dest$width$height$rgb=0xFFFFFF$quality=95)
{
  if (!
file_exists($src)) return false;

  
$size getimagesize($src);

  if (
$size === false) return false;

  
// Определяем исходный формат по MIME-информации, предоставленной
  // функцией getimagesize, и выбираем соответствующую формату
  // imagecreatefrom-функцию.
  
$format strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
  
$icfunc "imagecreatefrom" $format;
  if (!
function_exists($icfunc)) return false;

  
$x_ratio $width $size[0];
  
$y_ratio $height $size[1];

  
$ratio       min($x_ratio$y_ratio);
  
$use_x_ratio = ($x_ratio == $ratio);

  
$new_width   $use_x_ratio  $width  floor($size[0] * $ratio);
  
$new_height  = !$use_x_ratio $height floor($size[1] * $ratio);
  
$new_left    $use_x_ratio  floor(($width $new_width) / 2);
  
$new_top     = !$use_x_ratio floor(($height $new_height) / 2);

  
$isrc $icfunc($src);
  
$idest imagecreatetruecolor($width$height);

  
imagefill($idest00$rgb);
  
imagecopyresampled($idest$isrc$new_left$new_top00
    
$new_width$new_height$size[0], $size[1]);

  
imagejpeg($idest$dest$quality);

  
imagedestroy($isrc);
  
imagedestroy($idest);

  return 
true;

}

Спустя 20 минут, 54 секунды (5.05.2009 - 19:22) heavenly написал(а):
что-то молчание гробовое... хорошо другой вопрос немножко - из-за чего могут проблемы с GD-библиотекой ? если не по коду ! ?

Спустя 57 минут, 53 секунды (5.05.2009 - 20:20) waldicom написал(а):
Внимание, печатаю медленно и у выражением!
Посмотри что сожержится в переменной $size. Для это выведи её на экран после присвоение её значения.

Спустя 7 минут, 55 секунд (5.05.2009 - 20:28) sergeiss написал(а):
Проблемы у тебя в коде.
Ты получаешь $size в функции, но назад не возвращаешь. Тебе нужно в конце поставить не return true;, а return $size;

В ПХП возвращаемые из функций значения могут быть разных типов, т.е. в одном случае ты вернешь логическую величину false, в другом случае вернешь массив. При этом полученный на выходе массив будет иметь то имя, которое ты ему задашь.
Например, при вызове $new_size=img_resize(........); - ты получишь все данные в массив $new_size.

Спустя 2 часа, 12 минут, 54 секунды (5.05.2009 - 22:41) waldicom написал(а):
Цитата (sergeiss @ 5.05.2009 - 18:28)
Проблемы у тебя в коде.
Ты получаешь $size в функции, но назад не возвращаешь. Тебе нужно в конце поставить не return true;, а return $size;

В ПХП возвращаемые из функций значения могут быть разных типов, т.е. в одном случае ты вернешь логическую величину false, в другом случае вернешь массив. При этом полученный на выходе массив будет иметь то имя, которое ты ему задашь.
Например, при вызове $new_size=img_resize(........); - ты получишь все данные в массив $new_size.

Да не... То, что он отдает true назад нет ничего страшного, видимо этим сигнализируется, прошло ли изменение размеров нормально или нет.

Проблема в другом. Я даже могу сказать, в какой сточке.
Вот в этой:
PHP
$size getimagesize($src);

Видимо getimagesize() отрабатывает неправильно, в следствии чего неправильно формируется (а точнее вообще не формируется ) массив $size, и соответственно warning на этой строке
PHP
$format strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.