无法使用Perl CGI设置参数->;param()
我试图通过param函数设置一个要传递到下一页的参数 我试过了无法使用Perl CGI设置参数->;param(),perl,web,cgi,Perl,Web,Cgi,我试图通过param函数设置一个要传递到下一页的参数 我试过了 param(-name=>'foo',-value=>'the value'); param(-name=>'fooz',-values=>['an','array','of','values']); param('foo3', 1); 我的脚本重定向到另一个脚本,该脚本检查所有(param),但没有运气。CGI主页暗示这应该“正常工作”。我做错了什么 谢谢 有几种方法可以做到这一点 在这些方法的帮助下构建
param(-name=>'foo',-value=>'the value');
param(-name=>'fooz',-values=>['an','array','of','values']);
param('foo3', 1);
我的脚本重定向到另一个脚本,该脚本检查所有(param),但没有运气。CGI主页暗示这应该“正常工作”。我做错了什么
谢谢 有几种方法可以做到这一点
my $query = CGI->new;
$query->save(\*FILEHANDLE);
my $q = CGI->new(\*INFILEHANDLE);
my $q = CGI->new;
print $q->header();
print "window.location=\"$url\";\n\n"
在我看来,我上面列出的第一个选项是最容易做到的。有几种方法可以做到这一点
my $query = CGI->new;
$query->save(\*FILEHANDLE);
my $q = CGI->new(\*INFILEHANDLE);
my $q = CGI->new;
print $q->header();
print "window.location=\"$url\";\n\n"
$cgi->param(-name=>'foo',-value=>'the value');
$cgi->param(-name=>'fooz',-values=>['an','array','of','values']);
$cgi->param('foo3',1);
printf'',$cgi->self\u url;
这就是f.ex<代码>您需要使用
$cgi->param(-name=>'foo',-value=>'the value');
$cgi->param(-name=>'fooz',-values=>['an','array','of','values']);
$cgi->param('foo3',1);
printf'',$cgi->self\u url;
这就是f.ex
如果有错误,请描述您遇到的错误。@MichaelSlade后续页面没有收到这些参数+1:我不知道Perl支持的否定裸字,如-name
@AdrianPronk。没有,在=>之前出现的任何内容都是隐式的quoted@JD:那不完全是真的。在我的Perl(5.10)$x=-name
将$x
设置为字符串'-name'
,但%x=(+name=>1)
创建一个值为'name'
的键,而不是'+name'
。请描述您遇到的错误,如果有的话。@MichaelSlade后续页面无论如何都不会收到这些参数+1:我不知道Perl支持的否定裸字,比如-name
@AdrianPronk它不知道,在=>之前出现的任何内容都是隐式的quoted@JD:那不完全是真的。在我的Perl(5.10)$x=-name
将$x
设置为字符串'-name'
,但是%x=(+name=>1)
创建一个值为'name'
的键,而不是'+name'
。我认为无论是否使用对象,都可以传递参数。我正在使用我的$query=CGI->new$查询->参数(-name=>'foo',-value=>'thevalue');打印$query->redirect(-URL=>'cookietest.cgi');没有结果。cookietest.cgi已读取带和不带相同空值的对象的参数results@JD听起来像是在尝试为不同的请求设置参数(通过重定向)。在对象上设置参数将覆盖当前请求上的参数,但它不会通过重定向帮助您处理新请求。请尝试打印$query->redirect(-URL=>'cookietest.cgi?foo=bar')将参数传递给新请求。@JD我用参数重定向的步骤更新了我的示例。其中一个选择就是奥尔德斯所说的。布兰特的回答,连同奥尔德斯的评论,都是恰到好处的。如果需要将键/值对传递到重定向到的下一页,则需要实际传递它们。唉,CGI没有内置的会话支持,就像Java Servlet之类的东西一样,实际上您必须自己完成这项工作。布兰特的第二个选择基本上就是这样做,但我同意他的观点,你应该满足于他的第一个选择。这些都是很好的建议。我想知道是否有一种方法可以模仿参数传递的表单动作提交方式。你能在Perl CGI中做到这一点吗?我认为不管对象是否被使用,都可以传递参数。我正在使用我的$query=CGI->new$查询->参数(-name=>'foo',-value=>'thevalue');打印$query->redirect(-URL=>'cookietest.cgi');没有结果。cookietest.cgi已读取带和不带相同空值的对象的参数results@JD听起来像是在尝试为不同的请求设置参数(通过重定向)。在对象上设置参数将覆盖当前请求上的参数,但它不会通过重定向帮助您处理新请求。请尝试打印$query->redirect(-URL=>'cookietest.cgi?foo=bar')将参数传递给新请求。@JD我用参数重定向的步骤更新了我的示例。其中一个选择就是奥尔德斯所说的。布兰特的回答,连同奥尔德斯的评论,都是恰到好处的。如果需要将键/值对传递到重定向到的下一页,则需要实际传递它们。唉,CGI没有内置的会话支持,就像Java Servlet之类的东西一样,实际上您必须自己完成这项工作。布兰特的第二个选择基本上就是这样做,但我同意他的观点,你应该满足于他的第一个选择。这些都是很好的建议。我想知道是否有一种方法可以模仿参数传递的表单动作提交方式。您可以在Perl CGI中实现这一点吗?