使用CGI Python区分不同形式

1 投票
2 回答
515 浏览
提问于 2025-04-17 22:28

我在一个HTML文件里有多个表单,它们都调用同一个Python CGI脚本。例如:

<html>
<body>
<form method="POST" name="form1" action="script.cgi" enctype="multipart/data-form">
....
</form>
...
<form method="POST" name="form2" action="script.cgi" enctype="multipart/data-form">
...
</form>
...
</body>
</html>

在我的CGI脚本里,我这样做:

#!/usr/bin/python
import os
import cgi

print "content-type: text/html; charset=utf-8\n\n"
form = cgi.FieldStorate();
...

但是我无法获取第二个表单的数据。我尝试过多次调用FieldStorage,但似乎没有效果。所以我想问的是,如何在同一个CGI脚本中访问不同的表单呢?

2 个回答

1

首先,FieldStorage() 是用来处理标准输入的,所以它只需要创建一次。

其次,只有提交的表单中的数据会发送到服务器,其他的表单数据就好像不存在一样。

所以,虽然你可以用同一个 CGI 脚本来处理两个表单,但如果你需要同时处理这两个表单,正如 Martijn 所建议的,最好把这两个表单合并成一个 <form>

2

你不能这样做。浏览器只能提交一个表单,不能同时提交两个表单。

如果你需要两个表单的数据,可以把这两个表单合并成一个 <form> 标签。

撰写回答