0

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タグが何にも置き換えられないことも追加します。

4

1 に答える 1

0

スクリプトが実行されていますか?STDERRに何かを印刷すると、エラーログに表示されますか?

それを超えて、私はいくつかのコメントがあります:

  1. Content-Typeの印刷は冗長であると確信しています。あなた(とにかくApache)は、SSIを含むHTMLファイルを提供することですでにそれを行っています。 参照

  2. execのようなコマンドを実行するためのもの'ls -l'です。include virtual代わりに使用する必要があります。また、URLに引数を追加することもできます。例えば

    <!--#include virtual="/cgi-bin/example.cgi?argument=value" --\>
    
  3. qq[]二重引用符の代わりに、自分に有利に働き、使用してください。その場合、すべてをエスケープする必要はありません...例:

    print qq[< input type="hidden" name="aname" value="avalue"\b];
    
于 2010-06-01T21:56:48.610 に答える