好吧,我承认自己是一名设计师,我不太了解如何从表格中的服务器处理数据......(基本上是整个编程部分)。基本上我有一个文本字段,用户输入类似“apple”的东西,这会被发送到服务器,然后显示我在IFrame目录中的apple.html页面。如果有人能告诉我如何在PHP脚本或Perl中执行此操作,将非常感谢!我认为这是一个好的开始,它比这更复杂...我后来必须将“苹果”转换成像2321这样的东西,而不是显示2321.html。
如果有人能找到这样做的CGI脚本,谢谢!
答案 0 :(得分:1)
以下是用Perl编写的完整的CGI程序。它完全符合您的要求。除了您编号的水果结果文档之外,如果查找不成功或者用户根本没有输入水果,您还需要一个后备文档sorry-no-such-fruit.html
。
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI ();
my %fruit_codes = (
apple => '2321.html',
banana => '1234.html',
coconut => '8889.html',
);
my $c = CGI->new;
my $fruit_parameter = $c->param('fruit_name');
my $iframe_document;
if (defined $fruit_parameter and exists $fruit_codes{$fruit_parameter}) {
$iframe_document = $fruit_codes{$fruit_parameter};
} else {
$iframe_document = 'sorry-no-such-fruit.html';
}
$c->header('application/xhtml+xml');
print <<"END_OF_HTML";
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Fruits</title>
</head>
<body>
<form action="fruits.cgi">
<fieldset>
<label for="fruit">Name of the fruit:</label>
<input id="fruit" name="fruit_name" type="text" />
<input type="submit" />
</fieldset>
</form>
<iframe src="$iframe_document">
<a href="$iframe_document">resulting fruit</a>
</iframe>
</body>
</html>
END_OF_HTML
1;
如果你想修改这个程序,我给你最重要的安全建议:不要输出用户提供的输入(在这种情况下,$fruit_parameter
)未经修改。这可能会被滥用至少跨站点脚本。请专家程序员寻求帮助。