0

我正在学习 python,所以我从一本书中得到了这个练习:这是一个 html 表单:

<html>
  <body>
    <form method=POST action="cgi-bin/cgi101.py">
      <P><b>Enter your name:</b>
      <P><input type="text name=user" />
      <P><input type="submit" />
    </form>
  </body>
</html>

这是要调用的脚本:

#!/usr/bin/python3
import cgi
form = cgi.FieldStorage()
# parse form data
print('Content-type: text/html\n')
# hdr plus blank line
print('<title>Reply Page</title>')
# html reply page
if not 'user' in form:
  print('<h1>Who are you?</h1>')
else:
  print('<h1>Hello <i>%s</i>!</h1>' % cgi.escape(form['user'].value))

按照逻辑,如果我输入用户,它必须打印

你好用户

. 但它给了

你是谁?

反而。这意味着脚本在表单中看不到用户。为什么?apache 中允许 cgi/py 脚本用于 cgi-bin/。

4

1 回答 1

1

你这里有一个错字:

<input type="text name=user" />

这实际上应该是这样的:

<input type="text" name="user" />

type 和 name 是输入 HTML 标记上的每个属性。它们将始终采用的形式是:

<sometag attribute1="a thing" attribute2="another thing" />

请注意引号和等号的位置。一个出色的语法高亮文本编辑器将帮助您的眼球更清楚地看到这一点。

于 2012-12-05T17:27:48.470 回答