Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: На хостинге не работает GD
 
 автор: Den*s   (31.01.2013 в 23:33)   письмо автору
 
 

Локально работает скрипт наложения логотипа на картинку, как залил на хостинг эта функция перестала работать
вот что мне выдаёт phpinfo на хостинге по поводу этой библиотеки

gd
GD Support     enabled
GD Version     bundled (2.0.34 compatible)
FreeType Support     enabled
FreeType Linkage     with freetype
FreeType Version     2.4.2
T1Lib Support     enabled
GIF Read Support     enabled
GIF Create Support     enabled
JPG Support     enabled
PNG Support     enabled
WBMP Support     enabled
XBM Support     enabled 


Как быть ...

  Ответить  
 
 автор: DJ Paltus   (01.02.2013 в 00:23)   письмо автору
 
   для: Den*s   (31.01.2013 в 23:33)
 

Есть мнение, что проблема не в хостинге, а в скрипте.
Выделите функцию, дайте код, будем зырить.

  Ответить  
 
 автор: Den*s   (01.02.2013 в 00:32)   письмо автору
 
   для: DJ Paltus   (01.02.2013 в 00:23)
 


<?
 $img 
$_GET["img"]; //"download_user/images/big_1256928017.jpg";
 
$size_get $_GET["size"];
 
$url = @mysql_real_escape_string($_GET["url"]);
 
 if (!
$size_get$size_get "no";
 if (!
$url$url "no";
 
$img "download_user/images/big_".$img$t 60$l 10$height_font 50;
 
 
writeTextOnImage($img$size_get$url);
 
 function 
writeTextOnImage($filename$size_get$url2)
  {
   
$size_img getimagesize($filename);
   if (
$size_img[2] == 2$src_img imagecreatefromjpeg($filename);
   else if (
$size_img[2] == 1$src_img imagecreatefromgif($filename);
   else if (
$size_img[2] == 3$src_img imagecreatefrompng($filename);
   
   if (
$url2 == "novinki"$img_type "images/novinka";
   if (
$url2 == "specpredlojeniya"$img_type "images/speccena";
   if (
$url2 == "rasprodaja"$img_type "images/rasprodaja";
    
   if (
$size_get == "no"
   {
       
$logo_img $img_type."_big.png"// 'images/novinka_big.png';
       
$w 318;
       
$h 318;
   }
   else 
   {
       
$logo_img $img_type.".png";// 'images/novinka.png';
       
$w 106;
       
$h 106;
   }
   
   if (
$url2 == "no"
   {
       
$logo_img "images/space.png";
       
$w 1;
       
$h 1
   }
   
   
$img2 imagecreatefromjpeg($filename);
   
$logo imagecreatefrompng($logo_img);
   
imagecopy($img2$logo0000$w$h);
   
   
header("Content-Type: image/jpeg");
   
imagejpeg($img2);
   
imagedestroy($img2);
   
   
imagedestroy($img2);
   
   return 
true;
  }
  
?>

  Ответить  
 
 автор: DJ Paltus   (01.02.2013 в 01:49)   письмо автору
 
   для: Den*s   (01.02.2013 в 00:32)
 

Так. Опять слишком много неизвестных. Давайте расклад - архив с нужными изображениями, поддиректориями и тд. А то я сразу пытаюсь запустить, а мне ошибок за отсутствующие файлы и пути столько, что руки опускаются.

  Ответить  
 
 автор: Den*s   (01.02.2013 в 10:00)   письмо автору
 
   для: DJ Paltus   (01.02.2013 в 01:49)
 

Ссылка формируется вот так

http://site.ru/img.php?img=1359661530.jpg&size=full&url=rasprodaja


Папка с картинками: download_user/images/
Картинки имею префикс big_ и small, в данном случае реальные картинки называются так
big_1359661530.jpg
small_1359661530.jpg

картинки которые накладываются сверху лежат в папке
site.ru/images/
и называются
novinka.png
novinka_big.png
speccena.png
speccena_big.png
rasprodaja.png
rasprodaja_big.png

space.png это картинка 1х1 с прозрачным фоном

Если нужно ещё что то - говорите

  Ответить  
 
 автор: DJ Paltus   (01.02.2013 в 10:31)   письмо автору
 
   для: Den*s   (01.02.2013 в 10:00)
 

Архив с картинками. Я ж не буду сидеть их себе рисовать сидеть! прикрепите его к сообщению.

  Ответить  
 
 автор: Den*s   (01.02.2013 в 10:42)   письмо автору
169.5 Кб
 
   для: DJ Paltus   (01.02.2013 в 10:31)
 

Во вложении...
Ещё картинки генерируются так
http://site.ru/img.php?img=1359661530.jpg&url=rasprodaja

  Ответить  
 
 автор: DJ Paltus   (01.02.2013 в 11:22)   письмо автору
 
   для: Den*s   (01.02.2013 в 10:42)
 

Ага. Теперь яснее.

  Ответить  
 
 автор: DJ Paltus   (01.02.2013 в 11:40)   письмо автору
 
   для: Den*s   (01.02.2013 в 10:42)
 

Ага. Давай начистоту - почему вы берете параметр из массива GET и обрабатываете его функцией mysql_real_escape_string(), да еще и злостно подавляете вывод ошибки? Это раз. Второе. Неплохо бы дать по умолчанию значение, $img_type = ""; а то он неопределенный.
Итого:
1. 4-я строка, для начала присваиваем $url = $_GET["url"];
2. 18-я строка (добавить): $img_type = "";
3. убираем один из imagedestroy($img2); - меняем его на imagedestroy($logo);
...
PROFIT

  Ответить  
 
 автор: Den*s   (01.02.2013 в 22:45)   письмо автору
 
   для: DJ Paltus   (01.02.2013 в 11:40)
 

>Ага. Давай начистоту - почему вы берете параметр из массива GET и обрабатываете его функцией mysql_real_escape_string(), да еще и злостно подавляете вывод ошибки?
Привычка :)

Спасибо, всё работает ...

  Ответить  
 
 автор: mihdan   (02.02.2013 в 14:41)   письмо автору
 
   для: Den*s   (01.02.2013 в 22:45)
 

Очень плохая практика подавлять сообщения об ошибках - так вы никогда сами ничего не сможете "починить"

  Ответить  
 
 автор: Den*s   (02.02.2013 в 19:24)   письмо автору
 
   для: mihdan   (02.02.2013 в 14:41)
 

делал это с давних времён по причине.
Например принимаются у меня 2 переменные

$x1 = $_POST["x1"];
$x2 = $_POST["x2"];


$x2 не обязательная, если её не передавали вылетала ошибка. Было такое давненько.
Сейчас будут от привычки избавляться ...

  Ответить  
 
 автор: DJ Paltus   (03.02.2013 в 01:14)   письмо автору
 
   для: Den*s   (02.02.2013 в 19:24)
 

Папа Карло дал Буратине 5 яблок. Два яблока Буратино про... эээ... потерял, одно у него спер пудель Артемон, одно Буратино сожрал сам и еще одно от чистого сердца подарил Мальвине. Сколько яблок осталось у Буратины?

  Ответить  
 
 автор: psychomc   (02.02.2013 в 19:52)   письмо автору
 
   для: mihdan   (02.02.2013 в 14:41)
 

если вот так
<?php
if (file_exists($path)) {
    @
unlink($path);
}


то ничего страшного. если конечно работоспособность скрипта напрямую не зависит от существования файла.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования