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

Форум PHP

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

 

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

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

тема: imagettftext и 500 ошибка
 
 автор: darkozoid   (09.09.2013 в 10:46)   письмо автору
 
 

Доброго дня, подскажите пожалуйста, как быть
написал капчу на одном (тестовом) сайте - все работает все круто, перенес на основной - ошибка 500... Удалось вычленить что выдает ошибку


imagettftext($img, 17, $ug, $pos, 25, $color, $font, $text[$i]);


сразу скажу, что все переменные есть и они имеют правильные значения


imagestring ($img, 10, $pos, rand(10, 13), $text[$i], $color);

работает как обычно, но мне не подходит.

  Ответить  
 
 автор: confirm   (09.09.2013 в 11:08)   письмо автору
 
   для: darkozoid   (09.09.2013 в 10:46)
 

А чем отличается функция imagestring от функции imagettftext?

  Ответить  
 
 автор: darkozoid   (09.09.2013 в 11:24)   письмо автору
 
   для: confirm   (09.09.2013 в 11:08)
 

Это вопрос наводящий я так понимаю? или как?

одна записывает строку произвольным шрифтом, другая ее рисует.

GD и FreeType?

GD - точно есть так как помимо текста там еще и фон создается, а вот FreeType - ну черт его знает? где посмотреть?
phpinfo() ?

В чем еще разница?

  Ответить  
 
 автор: confirm   (09.09.2013 в 11:33)   письмо автору
 
   для: darkozoid   (09.09.2013 в 11:24)
 

Именно так - наводящий. Смотреть нужно в описании функции, и не в phpinfo(), а в руководстве.
FreeType использует другая функция, а какой шрифт использует функция imagettftext можно понять из ее названия.
Зная как использовать этот шрифт, на что в первую очередь нужно обратить внимание при ошибках?
А также найдите в сети список причин по которым может возникать ошибка 500, чтобы не перечислять их здесь.
После чего проанализируйте имеющееся у вас на сервере, найдете причину ошибки.

  Ответить  
 
 автор: darkozoid   (09.09.2013 в 11:50)   письмо автору
 
   для: confirm   (09.09.2013 в 11:33)
 

как использовать этот шрифт?

ну тыкните меня носом пожалуйста...
почему тот же скрипт работает на другом сервере... и как мне тогда его на этом запустить?

  Ответить  
 
 автор: confirm   (09.09.2013 в 11:58)   письмо автору
 
   для: darkozoid   (09.09.2013 в 11:50)
 

А что тыкать, в описании функции описано об особенностях доступа к файлу шрифта. Читали? Проверьте. Все нормально? Если да, значит проверяйте возможные другие причины возникновения ошибки 500.
Гадают только цыганки. Ну кто вам скажет причину, не видя обстановки на сервере?

  Ответить  
 
 автор: darkozoid   (09.09.2013 в 12:10)   письмо автору
 
   для: confirm   (09.09.2013 в 11:58)
 

if(!file_exists($font)){print'error<br>';}else{print'ok<br>';}
        print $font.'<br>';


результат


ok
/home/e/eliteeleru/electro/test/public_html/includes/fonts/cro.ttf

если указываю просто /includes/fonts/cro.ttf то результат error

что еще можно посмотреть?

  Ответить  
 
 автор: confirm   (09.09.2013 в 12:24)   письмо автору
 
   для: darkozoid   (09.09.2013 в 12:10)
 

Вы выяснили (вроде бы как), что данная ошибка возникает из-за функции imagettftext. Данная функции по большому счету не отличается от функции imagestring. Существенная разница между ними, это использование первой внешнего шрифта, в отличии от первого, который использует встроенный шрифт. В зависимости от версии библиотеки GD есть небольшие отличия к обращению этого внешнего файла. Это вы можете выяснить или нет?
Выяснили, если с путями все нормально, файл шрифта при загрузке не стал битым, проверяйте дальше. Найти сможете описание причин возникновения ошибки 500, или мне найти?

  Ответить  
 
 автор: darkozoid   (09.09.2013 в 12:44)   письмо автору
 
   для: confirm   (09.09.2013 в 12:24)
 

>Вы выяснили (вроде бы как), что данная ошибка возникает из-за функции imagettftext.
весь скрипт остается неизменным, меняется только одна строка

imagestring ($img, 5, $pos, 12,$text[$i], $black);
//imagettftext($img, 17, 0, 20, 25, $color, '/includes/fonts/cro.ttf', '1');

в одном случае все работает в другом 500 ошибка, так что да это дело в функции... (если есть другие варианты, то я о них не знаю).

> В зависимости от версии библиотеки GD есть небольшие отличия к обращению этого внешнего файла. Это вы можете выяснить или нет?

сейчас попробую....

>Выяснили, если с путями все нормально, файл шрифта при загрузке не стал битым, проверяйте дальше. Найти сможете описание причин возникновения ошибки 500, или мне найти?
.htaccess
доступность скрипта
права (755 и 644)

везде одно и тоже и все не подходит

  Ответить  
 
 автор: confirm   (09.09.2013 в 12:46)   письмо автору
 
   для: darkozoid   (09.09.2013 в 12:44)
 

В лог файл загляните.

  Ответить  
 
 автор: darkozoid   (09.09.2013 в 12:47)   письмо автору
 
   для: confirm   (09.09.2013 в 12:24)
 

> В зависимости от версии библиотеки GD есть небольшие отличия к обращению этого внешнего файла. Это вы можете выяснить или нет?

похоже, что нет... где это посмотреть в phpinfo()?

  Ответить  
 
 автор: confirm   (09.09.2013 в 12:53)   письмо автору
 
   для: darkozoid   (09.09.2013 в 12:47)
 

В ней.

Все ошибки пишут в лог. Заглядываете в него и смотрите. У вас либо "ковыряется" долго в поисках нужного, либо ваш файл шрифта при заливке на сервер оказался битым, и как следствие очень большое время исполнения скрипта будет, либо ... По лог записям и выясните, на что конкретно жалобы.

  Ответить  
 
 автор: darkozoid   (09.09.2013 в 13:00)   письмо автору
 
   для: confirm   (09.09.2013 в 12:53)
 

тут появляется еще одна проблема, у меня нет логов....
клиентский сайт, доступ есть только ftp, но там нет логов....

  Ответить  
 
 автор: confirm   (09.09.2013 в 13:06)   письмо автору
 
   для: darkozoid   (09.09.2013 в 13:00)
 

Плохо, значит разбирайтесь по косточкам, что вам еще посоветовать.

  Ответить  
 
 автор: darkozoid   (09.09.2013 в 13:34)   письмо автору
 
   для: confirm   (09.09.2013 в 13:06)
 

посоветуйте где посмотреть в чем отличия путей gdlib

  Ответить  
 
 автор: confirm   (09.09.2013 в 15:11)   письмо автору
 
   для: darkozoid   (09.09.2013 в 13:34)
 

Вы читали о функции? Там ведь не так и много написано:

fontfile
Путь к файлу TrueType шрифта.

В зависимости от версии GD библиотеки если fontfile не начинается с /, то в конец названия файла будет добавлено расширение .ttf, и библиотека будет пытаться найти этот файл по адресу, определенному в настройках библиотеки.

При использовании GD библиотеки версий младше 2.0.18 символ space (пробел), как и точка с запятой, использовался в качестве 'разделителя путей' для различных файлов шрифтов. При исползовании этой возможности будет выдаваться предупреждение: Warning: Could not find/open font. Решением такой проблемы в этих версиях может быть только исключение пробелов из путей файлов.

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


<?php
// Задание переменной окружения для GD
putenv('GDFONTPATH=' realpath('.'));

// Имя шрифта для использования (обратите внимание на отсутствие расширения .ttf)
$font 'SomeFont';
?>


Что еще рассказывать? Вы хотя бы вывод предупреждений и ошибок не блокируйте, возможно и это поможет, если нет логов.

  Ответить  
 
 автор: darkozoid   (09.09.2013 в 15:22)   письмо автору
 
   для: confirm   (09.09.2013 в 15:11)
 

да не блокирую я вывод ошибок, но они все равно не выводятся...

  Ответить  
 
 автор: confirm   (09.09.2013 в 16:07)   письмо автору
 
   для: darkozoid   (09.09.2013 в 15:22)
 

Значит надо все проанализировать, от вашего скрипта до настроек сервера. А никому из пользователей форума это не доступно.
А без логов работать сложно, это как слепому с тростью по оживленной улице ходить. Надо что-то думать, и чтобы они были.

  Ответить  
 
 автор: darkozoid   (10.09.2013 в 09:53)   письмо автору
 
   для: confirm   (09.09.2013 в 16:07)
 

так, получил доступы к хостингу, а там логи отключены, и то только логи доступов и логи ошибок...
но error_log даже не появился...

  Ответить  
 
 автор: confirm   (10.09.2013 в 10:20)   письмо автору
 
   для: darkozoid   (10.09.2013 в 09:53)
 

Ну что, выразить соболезнование?
Кстати, а что вам нужно написать на изображении?

  Ответить  
 
 автор: darkozoid   (10.09.2013 в 10:43)   письмо автору
 
   для: confirm   (10.09.2013 в 10:20)
 

буквы... цифры... капчу одним словом

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

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