【问题标题】:Perl CGI, Apache rewrite rule and form post dataPerl CGI、Apache 重写规则和表单发布数据
【发布时间】: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


    【解决方案1】:

    您在示例中发布表单,这意味着表单数据在请求正文中可用。查询字符串仅用于 GET 方法。不能混合使用 POST 和 GET。

    猜你喜欢
    • 2014-08-22
    • 2018-05-24
    • 1970-01-01
    • 2011-09-02
    • 2011-10-26
    • 1970-01-01
    相关资源
    最近更新 更多