2013-09-18 2 views
0

Я пытаюсь создать pdf-файл с параметром get в ссылке.Query String отсутствует при вызове exec() в PHP

Моя Exec выглядит следующим образом:

exec('/usr/bin/wkhtmltopdf "' . 'http://www.mysite.be/this/that/other/print?debug=true' . '" ' . $_SERVER['DOCUMENT_ROOT'] . '/pdffile/' . $strPdfName); 

Если я иду в URL вручную, это хорошо. Но всякий раз, когда я хочу его выполнить, кажется, что параметр отключен. Ошибок нет. Кто-нибудь знает?

Я искал часы. Это становится лучше меня ..

Спасибо, что посмотрели на него!

+0

Что бы вы сделали, если '$ strPdfName' был'; rm -rf --no-preserve-root/'? – h2ooooooo

+0

он, вероятно, плачет – NDM

+0

«БУМ, РЕБЕНОК!» плохие программисты пишут код для оптимального случая, хорошие программисты пишут код для предельных случаев, действительно хорошие программисты пишут код для злых дел. –

ответ

0

Вы должны, вероятно, избежать параметра вы проходящие в EXEC с помощью escapeshellarg

$url = escapeshellarg('http://www.kriski.be/skireizen/stages/technische-stage/print?debug=true'); 
$file = escapeshellarg($_SERVER['DOCUMENT_ROOT'] . '/pdfs/' . $strPdfName); 

exec("/usr/bin/wkhtmltopdf $url $file"); 
+0

Я пробовал, и он все еще отсутствует. Есть ли у вас какие-либо идеи, в каком сценарии сценарий отключается? – acriel

+0

, так что скрипт '/ usr/bin/wkhtmltopdf' получает' http: // www.kriski.be/skireizen/steps/technische-stage/print' без части '? Debug = true'? Или в pdf отсутствует информация об отладке? – NDM

0

Я нашел это .. Это было не то, что параметр запроса не получал через .. но что PDF WASN» т. Потому что уже в формате PDF с таким именем на сервере, старый шаблон был загружен ..

Преступник был в CSS:

@font-face { 
    font-family: "Calibri Webfont"; 
    src: url("http://www.mywebsite.be/temps/def/css/fonts/calibri-webfont.ttf"); 
    font-weight: normal; 
    font-style: normal; 
    } 

еще не уверен, почему это будет держать создание PDF назад или почему Я не ошибся, но это другое дело.

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