如何从HREF链接传递值到cgi脚本

时间:2013-10-26 18:15:57

标签: arrays perl html-table cgi

我有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,那里的任何好人都可以提供帮助..谢谢提前。

1 个答案:

答案 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环境变量。