我在这样的普通网址下执行cgi文件没有问题:
http://www.myhost.com/mydir/cgi-bin/test.cgi
但是,当我尝试将其嵌入HTML文件(称为index.html
)时,如下所示:
<HTML>
<BODY>
<P>Here's the output from my program:
<FORM ACTION="/var/www/mydir/cgi-bin/test.cgi" METHOD=POST>
<!-- This doesn't work also -->
<!-- FORM ACTION="cgi-bin/test.cgi" METHOD=POST-->
</FORM>
</P>
</BODY>
</HTML>
当我这样做时,CGI没有被执行:
http://www.myhost.com/mydir/index.html
CGI文件(test.cgi
)看起来像这样:
#!/usr/bin/perl -wT
use CGI::Carp qw(fatalsToBrowser);
print "Test cgi!\n";
这样做的正确方法是什么?
答案 0 :(得分:2)
问题是您在表单的action
属性中提供的路径。
您需要将其更改为相对于当前文档的路径 。 (index.html
)
从您的示例中看,这似乎是cgi-bin/test.cgi
答案 1 :(得分:2)
在HTML中没有一种好方法可以做到这一点。这是一个更适合使用an exec or virtual directive的SSI的工作。
答案 2 :(得分:1)
使用模板。将不同的代码混合在一起是个坏主意。甚至JS和CSS也与(X)HTML分开,以提高可读性和可维护性。
答案 3 :(得分:0)
您是否尝试过使用iframe:
<HTML>
<BODY>
<P>Here's the output from my program:
<iframe src="http://www.myhost.com/mydir/cgi-bin/test.cgi" />
</P>
</BODY>
</HTML>