SSI не производит вывод, также не выдает ошибку - PullRequest
0 голосов
/ 01 июня 2010

в html-файле:

<!--#exec cgi="/cgi-bin/test.pl"-->

скрипт perl:

#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "<input type=\"hidden\" name=\"aname\" value=\"avalue\">\n";
print "<img src=\"/cgi-bin/script.pl\" />";

Это не дает мне ошибки 'директива обработки ошибок' и не выводит мой HTML вместо тега. Я также добавлю, что тег ssi заменяется ничем.

1 Ответ

0 голосов
/ 02 июня 2010

Вы уверены, что скрипт выполняется? Если вы печатаете что-то в STDERR, оно появляется в журнале ошибок?

Помимо этого у меня есть несколько комментариев:

  1. Я почти уверен, что печать Content-Type избыточна, вы (ну, в любом случае, Apache) уже сделали это, предоставив HTML-файл, содержащий SSI. ссылка

  2. exec действительно предназначен для запуска таких команд, как 'ls -l'. Вы должны использовать include virtual вместо этого. Это также позволяет вам добавлять аргументы в URL. например, * 1 016 *

    <!--#include virtual="/cgi-bin/example.cgi?argument=value" --\>
    
  3. сделайте себе одолжение и используйте qq[] вместо двойных кавычек. Тогда вам не придется все избегать ... например

    print qq[< input type="hidden" name="aname" value="avalue"\b];
    
...