【发布时间】:2012-11-20 01:23:50
【问题描述】:
在我的 perl CGI 动态网站中,我结合了 Apache URL 重写和表单发布的数据。
阿帕奇
Alias "/test" "C:/Users/Fred/workspace/test"
<Directory "/Users/Fred/workspace/test/">
Allow from 127.0.0.1
Options +ExecCGI
RewriteEngine On
RewriteBase /test/
RewriteRule ^$ cgi-bin/index.pl [L]
RewriteRule ^fred/(.+)$ cgi-bin/fred.pl?data=$1 [L]
</Directory>
HTML 表单
<form action="fred/1234" method="post">
<input type="text" name="text" value="ABCD" />
<input type="submit" />
</form>
以下 perl 代码将显示 'data' 的空值,因为 cgi->param('data') 尽管 $ENV{'QUERY_STRING'} 不返回任何内容包含 'data=1234' :
my $cgi = CGI->new;
print $cgi->header();
print Dumper($ENV{'QUERY_STRING'});
my $data = $cgi->param('data');
my $text = $cgi->param('text');
print "data=$data<br/>";
print "text=$text<br/>";
知道为什么“数据”变量不包含在 CGI 参数中吗?
谢谢。
弗雷德
【问题讨论】:
标签: forms perl cgi rewrite http-post