我需要在CGI中编写一些对我来说很新的脚本。如果条件编号从5或6开始,我正在尝试执行。如果编号以5开头则执行一个代码,如果编号以6开头则执行另一个代码。
答案 0 :(得分:1)
我认为您不了解CGI是什么。 CGI只是一组由Web服务器设置的环境变量,您的程序随之执行。程序的输出成为网页。
因此,如果你想用Python,PHP,C,汇编,空白......编写一个CGI脚本,只要它可以被调用并使用环境变量,就可以了。
所以这真的是一个语言问题。你使用哪种语言?
编辑您在对此答案的评论中指定了Perl。我建议你编辑这个问题。
您输入的号码是多少? Perl脚本将使用一整套额外的环境变量运行。其中两个最重要的是QUERY_STRING
和REQUEST_METHOD
。 CGI由这些环境变量的规范组成,因此可以使用任何语言编写CGI。
考虑perl_cgi.cgi?something=else
。 ?
后面的位是QUERY_STRING。您可以直接将其指定为锚点的一部分:
<a href="perl_cgi.cgi?something=else">Run with something equals else</a>
或作为表单的一部分(GET或POST之一,默认为GET):
<form action="perl_cgi.cgi" method="[GET or POST]">
<input type="text" name="something" value="else"/>
<input type="submit" value="Submit!"/>
</form>
这将使用与上面相同的查询字符串运行您的程序(如果文本框已更改,则运行不同的参数),但REQUEST_METHOD
将取决于GET
或POST
。
所以让我们编写一个Perl CGI脚本来打印我们得到的第一个字符串数(我们只传递字符串):
use CGI;
$cgi=new CGI;
$x=$cgi->param('x');
$firstnum=substr($x, 0, 1);
print "Content-type: text/html\n\n";
print <<"EOF";
<html>
<head>
<title>My sample HTML page</title>
</head>
<body>
<p>The first number of $x is $firstnum</p>
</body>
</html>
EOF
这预先假定该程序作为[program_name]运行?x = [some string]。这取决于你确保是这样的。
那应该给你足够的。您可以检查firstnum
以查看其是否为5或6,然后执行不同的操作。
答案 1 :(得分:1)
use 5.013;
use warnings;
use Scalar::Util qw( looks_like_number );
use CGI;
my $param = CGI->new()->param('some_example');
given (substr $param, 0, 1) {
when (! looks_like_number($_) ) { say 'Not a number' }
when (5) { say 'starts with 5' }
when (6) { say 'starts with 6' }
}
或者,不是使用substr来获取第一个字母,而是将$ param和change(5)放到你选择的正则表达式中。