2016-04-04 2 views
0

Я пытался настроить этот PHP-скрипт. Я загрузил код с веб-сайта и загрузил его с этой страницы. [https://sourceforge.net/projects/tcpdf/files/][1]Ошибка TCPDF-сервера 500 - требуется подробная ошибка в PHP

Он работает до строки, начинающейся с $ pdf. Я добавил строку echo $ filename, чтобы увидеть, могу ли я видеть ошибки (идея, найденная на этой странице сайт - страница отображается 1hello - я понимаю, это, вероятно, означает, что require_once работает нормально

<? 
// Include the main TCPDF library (search for installation path). 
$filename = require_once('../tcpdf/examples/tcpdf_include.php'); 

echo $filename.'hello'; 
exit; 
// create new PDF document 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false, true); 

и т.д. и т.п.

Если удалить $ имя_файла = и эхо/выхода линии (ниже) я получаю. generic server 500 error - любые идеи, как получить подробную ошибку, которую я действительно могу использовать? Я вижу подробные ошибки на других страницах.

<? 
// Include the main TCPDF library (search for installation path). 
require_once('../tcpdf/examples/tcpdf_include.php'); 

// create new PDF document 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false, true); 

и т.д. и т.п.

РЕДАКТИРОВАТЬ: Нашли ошибку путем добавления ini_set ('display_errors', 1); на странице - ошибка Фатальная ошибка: Class «TCPDF» не найден ... в строке 31

Линия 31 относится к:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 

Если я смотрю в tcpdf_include.php включаемый файл он говорит код, который ссылается на некоторые файлы, которые я не думаю, что мой сервер имеет:

$tcpdf_include_dirs = array(
realpath('../tcpdf.php'), 
'/usr/share/php/tcpdf/tcpdf.php', 
'/usr/share/tcpdf/tcpdf.php', 
'/usr/share/php-tcpdf/tcpdf.php', 
'/var/www/tcpdf/tcpdf.php', 
'/var/www/html/tcpdf/tcpdf.php', 
'/usr/local/apache2/htdocs/tcpdf/tcpdf.php'); 

/USR/доли/PHP/пусто. Я предполагаю, что я должен поместить файл tcpdf.php во все эти местоположения или это не имеет значения. & Мне не хватает точки?

ответ

3

Вы можете найти подробную ошибку 500 сервера в вашем веб-сервере (Apache?) Журналы. Расположение журналов зависит от вашей ОС/установки.

Вы собираете штраф: 1hello означает, что необходимый файл загружен правильно. Вам не нужно проверять это, потому что если require/require_once не работает, вы получаете Fatal Error, и скрипт умирает.

Если вы можете отслеживать логи ошибок сервера, вероятно, вы увидите что-то вроде:

Fatal error: Class 'TCPDF' not found

потому TCPDF/примеры/tcpdf_include.php предназначен для использования с обеспеченными примерами, и он работает правильно только если основной URL (или текущий каталог, если вы выполняете скрипт через командную строку) находится в том же каталоге.

Для загрузки класса TCPDF, вы должны

require_once('../tcpdf/tcpdf.php'); 

, но я предлагаю вам, чтобы указать абсолютный путь.

+0

Спасибо @ fusion3k, я пробовал ваш совет об использовании абсолютного путь и до сих пор не радость. Я также пытался использовать файлы точно так же, как есть (со всеми файлами внутри каталога, и это сработало. Проблема заключается в том, что я хотел бы использовать этот код в нескольких местах на моем веб-сайте. Я попытался включить файл примера, который работает когда в своем собственном каталоге (tcpdf) [link] (https://onlineticketseller.com/dist/tcpdf/examples/example_065.php) в другой файл, но он не работает. Любые мысли? Спасибо – GeneralTomfoolery

+0

Это ** должно быть ** работать. Вам не нужно использовать пример, но основной файл tcpdf.php. Обратите внимание, что каталог tcpdf должен находиться внутри вашего корневого документа сервера или в глобальной каталоге include php. Что вы имеете в виду под «it doesn», t work "? Какая у вас ошибка? – fusion3k

+0

Привет @ fusion3k - извините за туманность.« Это не работает »означает, что он показывает ошибку сервера 500. Он работает, пока я использую только файлы внутри папки tcpdf, но если Я пытаюсь использовать (включить) файл из-за пределов папки, в которой он не работает (сервер 500) – GeneralTomfoolery

0

Этот конструктор TCPDF не существует. Вы добавили в конец логическую переменную, которая не разрешена lol.

Следующая лучше:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
+1

Последний параметр полностью действителен (см. [Docs] (http://www.tcpdf.org/doc/code/classTCPDF.html # a134232ae3ad1ec186ed45046f94b7755) для подробностей). – fusion3k

+0

true, я действительно прощаю параметр '$ pdfa' lol – ThierryB

+0

Мы все ошибаемся, иногда ... ¯ \\ _ (ツ) _/¯ – fusion3k

Смежные вопросы