如何在perl CGI脚本中删除以前的输出?

时间:2014-06-27 18:31:50

标签: html perl

我的HTML代码

<html>
<head>
<title>hello</title>
</head>
<body bgcolor = pink>
<form action ="hai.pl" method=post>
<label>enter your name</label>
<input type = "text" name ="fname">
<input type = "submit" value = "go">
</form>
</body>
</html>

perl脚本

use CGI ':standard';
$firstname = param('fname');
print "<html>";
print "<head>";
print "<title>$firstname</title>";
print "</head>";
print "<body>";
print "<h2> hai $firstname </h2>";
print "</body>";
print "</html>";

当我将第一个输入提供给html代码时,只打印输出的次数多但输入类型不同。例 我第一次给出输入MKHUSSAIN。哪个输出是海MKHUSSAIN。下次我给输入BOXER。哪个输出是海MKHUSSAIN。我该如何清除这个错误?

3 个答案:

答案 0 :(得分:0)

您的代码应该只打印出错误。你的perl脚本有一些问题。首先,您需要一个shebang来指示哪个解释器将运行该文件。其次,您需要打印一个cgi前缀(下面的标题函数)来指示页面的内容类型。

您还应该为perl脚本添加错误和警告支持。这有助于您更轻松地识别问题。

看看:

#!/usr/bin/perl

use strick;    
use warnings;
use CGI ':standard';

my $firstname = param('fname') || "";

print header;

print "<html>";
print "<head>";
print "<title>$firstname</title>";
print "</head>";
print "<body>";
print "<h2> hai $firstname </h2>";
print "</body>";
print "</html>";

同样,您发布的示例除了显示错误之外不会做任何事情。我所做的改变实际上就是你所描述的目标。

答案 1 :(得分:0)

将这个参数线分为两部分。

my $firstname="";  
$firstname= $cgi->param("fname");

每次运行时,首先创建一个空字符串也有助于清空它。这也是一项有安全意识的举动。

答案 2 :(得分:0)

use CGI;
$cgi = CGI->new();
$firstname = $cgi->param('fname');
print "<html>";
print "<head>";
print "<title>$firstname</title>";
print "</head>";
print "<body>";
print "<h2> hai $firstname </h2>";
print "</body>";
print "</html>";

在每个perl脚本中使用'CGI-&gt; new()'然后只执行我们期望的输出。