我在Apache 2虚拟主机配置中有以下指令:
<Directory /var/www/foo_test>
Options MultiViews +ExecCGI
AddHandler cgi-script .py
AllowOverride All
</Directory>
我有以下简单格式HTML:
<html>
<body>
<form action="foo.py" method="post" id="foo_form">
<input type="text" id="foo" />
<input type="submit" />
</form>
</body>
</html>
这是foo.py
,提交表单时调用的可执行脚本:
#!/usr/bin/env python
import cgi
arguments = cgi.FieldStorage()
print "Content-Type: text/html\n"
print repr(arguments)
当我提交表单时,我收到以下回复:
FieldStorage(None, None, [])
FieldStorage
对象实例中没有任何内容包含foo_form
形式中指定的字段的值。
如果我用Perl脚本及其CGI
模块替换Python脚本,同时更改Apache指令以处理Perl CGI,我可以从表单中读取字段。这告诉我,我的Apache设置没问题。
但是,我是否遗漏了实例化cgi.FieldStorage()
对象或我的Apache设置的原因,导致表单提交失败?
答案 0 :(得分:2)
如果您希望在表单中提交数据,则需要为输入提供name
属性。