CGI 初级问题

CGI 初级问题

我是菜鸟刚学CGI
HTML:
<HTML><HEAD>  
<TITLE> My first form </TITLE>  
</HEAD><BODY>  
<FORM ACTION="http://localhost/cgi-bin/form.pl" METHOD="POST">  
First Name <INPUT NAME="first" TYPE=TEXT SIZE=25><BR>  
Last Name <INPUT NAME="last" TYPE=TEXT SIZE=25><BR>  
E-mail <INPUT NAME="email" TYPE=TEXT SIZE=30><BR>  
<INPUT TYPE=SUBMIT VALUE="Test it">  
</FORM>  
</BODY></HTML>

PERL:
#!G:/Perl/bin/perl
my $firstname=$value[0];  
my $lastname=$value[1];  
my $email=$value[2];  
print"Content-type:   text/html   \n\n";
print"<html><body>\n";
print"<p>";
print"恭喜你的website已经成功 $firstname,$lastname,$email \n";
print"</p>\n";
print"</body></html>";

我是照着网上的贴着照搬的,但是只出现“恭喜你的website已经成功”。请问参数的传递是@value数组吗?
@value这里是没定义的,也没有值得
你如果加上use strict;就会报错了。

获取参数你可以用CGI模块
perldoc CGI
param里面有这个方法
谢谢,你能否给我例子?
#!/usr/bin/perl -w
use strict;
use CGI qw(:standard);
my @pairs;
my $value;
my $name;
my ( $buffer, $pair, %form );
read( STDIN, $buffer, $ENV{'CONTENT_LENGTH'} );
@pairs = split( /&/, $buffer );
foreach $pair (@pairs) {
    ( $name, $value ) = split( /=/, $pair );
    $value =~ tr/+/   /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",   hex($1))/eg;
    $value =~ s/<!--(.|\n)*-->//g;
    $value =~ s/\t/--/g;
    $value =~ s/\n/\\!/g;
    $form{$name} = $value;
}
print "content-type:text/html\n\n";


上面这段得到表单提交过来的数据
使用$form{'name'}得到数据
#!/usr/bin/perl -w
use strict;
use CGI;
my @a;
$a[0]=param('first');  
$a[1]=param('last');  
$a[2]=param('email');  
print"Content-type:   text/html   \n\n";
foreach (@a){
print "$_<p>";}


你的想法是这样的吧


你可以看一下perl 24学时

谢谢 4楼 5楼的回复,我这就去试看看。
use strict;
use warning;
是好习惯。


QUOTE:
原帖由 easyworld 于 2008-8-13 10:04 发表
#!/usr/bin/perl -w
use strict;
use CGI;
my @a;
$a[0]=param('first');  
$a[1]=param('last');  
$a[2]=param('email');  
print"Content-type:   text/html   \n\n";
foreach (@a){
print "$_";}
...

你这里好像错了!是不是在use CGI;下面的内容应该用{}括起来?


QUOTE:
原帖由 yingweixu 于 2008-8-14 23:29 发表



你这里好像错了!是不是在use CGI;下面的内容应该用{}括起来?

有这种强制吗?

如果我还要用 use DBI 那怎么括呢?


use CGI 只是要调用模块嘛,

这就类似 C 中的 include 了,不过perl没有“main”程序
我是在windows 下做的这个测试,在没有加的时候它就是显示500错误;但是加了之后就显示正常,我也搞不清楚,所以才说好像是错了!