我还是一个新手,我试着在我的Apache服务器上运行这个CGI脚本。当我进入网页时,我得到的只是一个空白页面。我做错了什么?
#!/usr/bin/perl
use CGI qw(:standard);
print"Content-type: text/html \n\n";
$cost=param('cost');
$num=param('number');
$rev=param('revenue');
$avg = $cost/$num;
$avg=sprintf("%.2f",$avg);
$gp = $rev - $cost;
print "Project Cost Last Year was \$ $cost .<p>";
print "We completed $num projects during the year.";
print " That works out to an average of \$ $avg cost per project.";
print "<p>Our annual project revenue was \$ $rev <br>";
print "We made a gross profit of \$ $gp \n";
这是我当前的脚本代码。我已经确保我的文件也是可执行的。
1条答案
按热度按时间gkl3eglg1#
我使用的URL是
192.168.1.49/cgi-bin/cgi.cgi
我想你是指
http://192.168.1.49/cgi-bin/cgi.cgi
。对于给定的请求URL,您希望下面的内容发生什么情况?
由于没有为
number
参数提供值,因此$num
为undef
,在$avg = $cost/$num;
中被视为零。被零除会让CPU很伤心。
"你应该自己想清楚"
类似这样的异常可能会导致服务器返回HTTP状态500。这表示您应该阅读错误日志,在错误日志中会发现以下消息:
如果正常使用
use warnings;
,也会收到以下错误:use strict; use warnings;
。具体来说,您的代码存在code injection错误,这些错误很容易被利用进行跨站点脚本攻击和url重定向攻击。
HTML中包含的文本需要转换为HTML。