我有href调用cgi脚本的脚本,我想从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的链接时,我在这里得到错误,我猜它没有将param传递给call.cgi,那里的任何好人都可以提供帮助..谢谢提前。
答案 0 :(得分:0)
删除-T
通常不是一个好方法。您的代码中可能存在潜在的安全问题,而-T
的perl会对此感到惊恐。删除-T
后,您只需屏蔽它,但它仍然存在。 $cgi->param()
的返回值受到污染,在将其传递给许多函数之前必须将其清除。
相反,按@Chris的建议添加use CGI::Carp qw/fatalsToBrowser/;
,如果仍然出现此错误,请查看包含有关错误的更多信息的服务器错误日志。
有时它有助于从命令行运行并直接在命令行上查看错误。将QUERY_STRING
设置为您的参数并运行您的脚本:
export REQUEST_METHOD=GET
export QUERY_STRING=param=WhateverYourPath1Is
perl /path/to/call.cgi
注意:您可能需要根据脚本定义一些其他CGI环境变量。