По крайней мере в том, что вы только что показали, есть синтаксические ошибки:
if form.has_key("firstname") amd form["firstname"].value !="":
print "<h1>Hello", form["firstname"].value, "</h1>"
else:
print "<h1> Error!Wrong!</h1>
amd
должно быть and
, а оба оператора print
должны иметь отступ глубже, чем ключевые слова if
и else
, которые их контролируют.
Если вы исправите свой синтаксис и попробуете снова, что именно вы видите в браузере (и что вы видите, если используете функцию браузера «show source»)?
Редактировать
Еще одна синтаксическая ошибка: вы пропускаете закрывающий "
на втором print
. Очень утомительно отслеживать все ваши синтаксические ошибки одну за другой, и Apache (или какой-либо другой веб-сервер), похоже, не помогает - cgitb
не может взять управление под контроль, пока весь скрипт не будет успешно проанализирован, поэтому синтаксис ошибки - единственная причина, по которой он не может отображаться!
И еще: пропущенная двоеточие в конце строки def main
.
Почему бы вам просто не запустить его с python yourscript.py
в командной строке, пока не сделаете синтаксис без ошибок, и только затем попытаться снова запустить его как CGI?
например. после исправления двух ошибок, которые я обнаружил ранее, но не двух, которые я только что заметил, вы увидите (если python
в PATH и приглашение оболочки $
):
$ python acgi.py
File "acgi.py", line 6
def main()
^
SyntaxError: invalid syntax
из-за отсутствия "
в конце предыдущей строки и отсутствия двоеточия в строке 6.
Исправляя последние две ошибки (всего четыре в коде, который вы первоначально разместили), вы, наконец, видите:
$ python acgi.py
Content-type: text/html
<h1> Error!Wrong!</h1>
конечно, он говорит «неправильно», потому что хранилище полей пусто, но это показывает, что вы можете СЕЙЧАС (с исправлением всех четырех ошибок) разумно попытаться запустить его как скрипт CGI наконец; -)