1

我确实有调用cgi脚本的href脚本,我想将值从href传递给cgi脚本。第一个脚本是link.cgi,它有这样一行:

 print "<TD align=center><FONT SIZE='4'><a href='../cgi-bin/call.cgi?param=$path1'>$v_rel</a></FONT>\n";

我在 call.cgi 中有这些行:

use CGI;
my $cgi = CGI->new();
my ($param) = $cgi->param('param');
print ".....the value is $param\n";

当我单击它调用 call.cgi 的链接时,我在这里收到错误,我猜它没有将参数传递给 call.cgi,任何好人都可以帮助解决这个问题..提前谢谢。

4

1 回答 1

0

删除-T通常不是一个好的解决方案。您的代码中可能存在潜在的安全问题,并且 perl-T警告您。通过删除-T,您只是掩盖了它,但它仍然存在。的返回值$cgi->param()受到污染,必须在将其传递给许多函数之前进行清理。

相反,use CGI::Carp qw/fatalsToBrowser/;按照@Chris 的建议添加,如果您仍然收到此错误,请查看您的服务器错误日志,其中将包含有关该错误的更多信息。

有时它有助于能够从命令行运行并直接在命令行上查看错误。设置QUERY_STRING为您的参数并运行您的脚本:

export REQUEST_METHOD=GET
export QUERY_STRING=param=WhateverYourPath1Is
perl /path/to/call.cgi

注意:您可能需要根据您的脚本定义一些其他 CGI 环境变量。

于 2013-10-29T10:23:46.653 回答