在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标签没有被替换。
答案 0 :(得分:0)
您确定脚本正在执行吗?如果您将某些内容打印到STDERR,它是否会显示在错误日志中?
除此之外,我还有一些评论:
我非常确定打印Content-Type是多余的,你(无论如何,Apache)已经通过提供包含SSI的HTML文件来完成。 reference
exec
真正用于运行'ls -l'
之类的命令。您应该使用include virtual
代替。它还允许您向URL添加参数。 e.g。
<!--#include virtual="/cgi-bin/example.cgi?argument=value" --\>
帮自己一个忙,并使用qq[]
而不是双引号。你不必逃避一切......例如
print qq[< input type="hidden" name="aname" value="avalue"\b];