我有一个CGI脚本,它在URL中获取一些参数,并呈现一个表单。 当用户提交表单时,表单中的信息将保存在cookie中。 现在,按下提交,我希望调用相同的URL,包括最初调用它的参数。
示例:可能更清楚: 有人这样打电话给我:
www.mysite.com/script.cgi?name=nec&mail=necnec
在此页面上,用户可以选择颜色(红色,黄色,绿色)。 当按下按钮提交时,我希望我的页面被称为:
的 www.mysite.com/script.cgi?name=nec&mail=necnec 的&安培;颜色=绿色
我是怎么做到的?
感谢!!!
答案 0 :(得分:0)
名为 script.cgi 的脚本可能如下所示。
#!C:\Perl\bin\perl.exe
use strict;
use warnings;
use CGI;
my $query = new CGI;
my $p_name=$query->param('name')|| "NO Name";
my $p_mail=$query->param('mail')|| "NO Email";
print $query->header( "text/html" );
print <<START_HERE;
<html>
<head>
<title>Your First CGI Script</title>
</head>
<body>
<h1>This is a script Web page</h1>
<p>
<form name='testform' method='get' action='test.pl'>
<input type="hidden" name="name" value=$p_name />
<input type="hidden" name="mail" value=$p_mail />
<select name='color'>
<option value="red">Red</option>
<option value="green">Green</option>
<option value="white">White</option>
<option value="yellow">Yellow</option>
</select>
<input type='submit' value='submit' name="submit" />
</form>
</p>
</body>
</html>
START_HERE
#must have a line after "START_HERE" or Perl won't recognize
#the token
使用参数方法 script.cgi 将参数名称和邮件和 表单提交后,此页面将带您进入 test.pl 。此处颜色,名称和邮件参数可用。因为名称和邮件是使用隐藏字段发送的。
#!C:\Perl\bin\perl.exe
use strict;
use warnings;
use CGI;
my $query = new CGI;
my $cookie_color=$query->cookie('color');
my $name=$query->param('name')|| "NO Name";
my $mail=$query->param('mail')|| "NO Email";
my $color=$query->param('color')|| $cookie_color || "NO color";
my $cookie = $query->cookie(-name=>'color',
-value=>$color_value,
-expires=>'+4h',
-path=>'/');
print $query->header( "text/html" );
print $query->header(-cookie=>$cookie);
print <<START_HERE;
<html>
<head>
<title>Script to check the Parameters</title>
</head>
<body>
<h1>This is a test Web page</h1>
<p>Name: $name</p>
<p>Mail: $mail</p>
<p>Color: $color</p>
</body>
</html>
START_HERE
#must have a line after "START_HERE" or Perl won't recognize
#the token
您还可以在 testform 中使用 action ='script.cgi'。并在 script.cgi 名称,邮件,颜色,类似于 test.pl >
可以在 test.pl 中设置Cookie。那是在提交表格之后。