in the html file:
<!--#exec cgi="/cgi-bin/test.pl"-->
the perl script:
#!/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\" />";
This does not give me an ‘error processing directive’ error, nor does it output my HTML inplace of the tag. I’ll also add that the ssi tag gets replaced with nothing.
Are you sure the script is executing? If you print something to STDERR does it show up in th error log?
Beyond that I have a few comments:
I’m pretty sure printing the Content-Type is redundant, you (well, Apache anyway) have already done that by serving the HTML file that contains the SSI.
reference
execis really meant for running commands like'ls -l'. You should useinclude virtualinstead. It also allows you to add arguments to the url. e.g.do yourself a favor and use
qq[]instead of the double-quotes. You won’t have to escape everything then… e.g.