perl cgi表单处理

perl cgi表单处理,perl,Perl,我正在处理一个文件,我试图了解如何处理表单,希望传递一个隐藏字段。为简单起见,假设我希望我的scipt在第一次向用户显示隐藏字段时简单地显示该字段的值,递增1,在“提交”后,新脚本显示更新的隐藏字段。我试图获得关于显式过程的见解,以便将其应用到我当前的一个项目中。 我在网上搜索过,但大多数例子都让我困惑,有人能插话吗?你可以将隐藏字段的值写入cookie。每次刷新或重新访问同一网页时,脚本都可以将cookie读入隐藏变量并将其递增一。下面的示例使用变量而不是表单中的隐藏字段 #!/usr/bin

我正在处理一个文件,我试图了解如何处理表单,希望传递一个隐藏字段。为简单起见,假设我希望我的scipt在第一次向用户显示隐藏字段时简单地显示该字段的值,递增1,在“提交”后,新脚本显示更新的隐藏字段。我试图获得关于显式过程的见解,以便将其应用到我当前的一个项目中。
我在网上搜索过,但大多数例子都让我困惑,有人能插话吗?

你可以将隐藏字段的值写入cookie。每次刷新或重新访问同一网页时,脚本都可以将cookie读入隐藏变量并将其递增一。下面的示例使用变量而不是表单中的隐藏字段

#!/usr/bin/perl
#countvisits.cgi
use strict;
use warnings;

use CGI qw(:standard -debug);
use CGI::Carp qw(fatalsToBrowser);

#declare variables
my ($count, $C_record);

#Create a new CGI object
my $cgi = new CGI;

#Read the cookie
#assign input to variable
$count=$cgi->cookie('count');

$count++;

#create cookie
$C_record = cookie(-name => "count",
                 -value => $count,
                 -expires => "6M");


#send cookie to browser
print header(-cookie => $C_record);

#create Web page
print "<HTML>\n";
print "<HEAD><TITLE>Jubilee Book Club</TITLE></HEAD>\n";
print "<BODY>\n";
print "<H1 ALIGN=center>Hello!<BR>\n";
print "You have been here $count times.</H1>\n";
print "</BODY></HTML>\n";
#/usr/bin/perl
#countvisions.cgi
严格使用;
使用警告;
使用CGI qw(:标准-调试);
使用CGI::Carp qw(fatalsToBrowser);
#声明变量
我的($count,$C_记录);
#创建一个新的CGI对象
my$cgi=新cgi;
#读饼干
#将输入分配给变量
$count=$cgi->cookie('count');
$count++;
#创建cookie
$C_record=cookie(-name=>“count”,
-值=>$count,
-expires=>“6M”);
#将cookie发送到浏览器
打印标题(-cookie=>$C_记录);
#创建网页
打印“\n”;
打印“禧年图书俱乐部”\n;
打印“\n”;
打印“Hello!
\n”; 打印“您已经在这里$count次。\n”; 打印“\n”;
您可以将隐藏字段的值写入cookie。每次刷新或重新访问同一网页时,脚本都可以将cookie读入隐藏变量并将其递增一。下面的示例使用变量而不是表单中的隐藏字段

#!/usr/bin/perl
#countvisits.cgi
use strict;
use warnings;

use CGI qw(:standard -debug);
use CGI::Carp qw(fatalsToBrowser);

#declare variables
my ($count, $C_record);

#Create a new CGI object
my $cgi = new CGI;

#Read the cookie
#assign input to variable
$count=$cgi->cookie('count');

$count++;

#create cookie
$C_record = cookie(-name => "count",
                 -value => $count,
                 -expires => "6M");


#send cookie to browser
print header(-cookie => $C_record);

#create Web page
print "<HTML>\n";
print "<HEAD><TITLE>Jubilee Book Club</TITLE></HEAD>\n";
print "<BODY>\n";
print "<H1 ALIGN=center>Hello!<BR>\n";
print "You have been here $count times.</H1>\n";
print "</BODY></HTML>\n";
#/usr/bin/perl
#countvisions.cgi
严格使用;
使用警告;
使用CGI qw(:标准-调试);
使用CGI::Carp qw(fatalsToBrowser);
#声明变量
我的($count,$C_记录);
#创建一个新的CGI对象
my$cgi=新cgi;
#读饼干
#将输入分配给变量
$count=$cgi->cookie('count');
$count++;
#创建cookie
$C_record=cookie(-name=>“count”,
-值=>$count,
-expires=>“6M”);
#将cookie发送到浏览器
打印标题(-cookie=>$C_记录);
#创建网页
打印“\n”;
打印“禧年图书俱乐部”\n;
打印“\n”;
打印“Hello!
\n”; 打印“您已经在这里$count次。\n”; 打印“\n”;
表单提交的值可以使用模块(因为您没有显示任何代码,我不知道您是在使用
CGI
还是试图手动处理CGI交互;如果您是手动操作,则是错误的)及其
param
方法进行检索

给定HTML表单:

<form action='my_script.cgi' method=POST>
  <input type=hidden name=hidden_field value=1>
  <input type=submit>
</form>

表单提交的值可以使用模块(因为您没有显示任何代码,我不知道您是在使用
CGI
还是试图手动处理CGI交互;如果您是手动操作,则是错误的)及其
param
方法进行检索

给定HTML表单:

<form action='my_script.cgi' method=POST>
  <input type=hidden name=hidden_field value=1>
  <input type=submit>
</form>

更多信息会有所帮助-您是否已经编写了一些perl代码?您考虑过使用哪些模块(如果有的话)?你的HTML是什么?请停止使用肮脏的旧CGI.pm。请改用一个现代且干净的web引擎,如或。更多信息会有所帮助-您是否已经编写了一些perl代码?您考虑过使用哪些模块(如果有的话)?你的HTML是什么?请停止使用肮脏的旧CGI.pm。请改用现代且干净的web引擎,如或。感谢您的回复,这是一种非常聪明的方法,但我仅限于使用表单处理,有没有一种方法可以使用表单执行相同的操作?我是perl新手,所以我试图理解表单操作调用中会使用什么,如果传递时需要解码隐藏字段,等等。。我很感激你能找到的任何东西,甚至是提供详细解释文章的任何链接。我已经苦思冥想了几天了,我要传递我的形式和价值观,我只是不知道如何传递它们。戴夫·舍罗曼的答案对我来说很好。确保隐藏字段具有名称属性。提交表单时,任何具有名称属性的表单字段的值都可以通过CGI对象的param方法由action属性中命名的脚本检索。感谢回复,这是一种非常聪明的方法,但我仅限于使用表单处理,是否有一种方法可以使用表单执行相同的操作?我是perl新手,所以我试图理解表单操作调用中会使用什么,如果传递时需要解码隐藏字段,等等。。我很感激你能找到的任何东西,甚至是提供详细解释文章的任何链接。我已经苦思冥想了几天了,我要传递我的形式和价值观,我只是不知道如何传递它们。戴夫·舍罗曼的答案对我来说很好。确保隐藏字段具有名称属性。提交表单时,任何具有名称属性的表单字段的值都可以通过CGI对象的param方法由action属性中命名的脚本检索。