我的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。我该如何清除这个错误?
答案 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()'然后只执行我们期望的输出。