Я новичок в HTML и Apache.HTML-форма, дающая ошибку на apache
Часть моего текущего проекта состоит в том, чтобы сделать пользовательский интерфейс для передачи данных от пользователя и отправить его в программу python для обработки.
Я начал изучать, как это сделать. Я сделал простую программу, которая выводит на экран «Имя первого имени». Я сделал еще одну программу, которая использует действие формы HTML, чтобы получить данные, чтобы представить это.
Коды 2 программ: позволяет называть этот файл second.py
#!/usr/bin/python
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage()
# Get data from fields
first_name = form.getvalue('first_name')
last_name = form.getvalue('last_name')
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Hello - Second CGI Program</title>"
print "</head>"
print "<body>"
print "<h2>Hello %s %s</h2>" % (first_name, last_name)
print "</body>"
print "</html>"
Чтобы получить данные, скажем form.html:
<form action="/cgi-bin/second.py" method="get">
First Name: <input type="text" name="first_name"> <br />
Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>
Я использую Fedora. У меня нет привилегий суперпользователя на компьютере. У меня есть другая система (ubuntu) с запущенным сервером apache, где у меня есть привилегии суперпользователя.
Моя проблема, когда я запускаю это на сервере Apache, second.py работает правильно HTTP:. // * * 8.1.91/CGI-BIN/second.py. дает выход: Hello NoneNone
HTTP: //*.*8.1.91/cgi-bin/second.py first_name = Akhil & last_name = Кулкарня дает выход: Hello Akhil Кулкарне
это как это работает.
Если я запустить form.html (HTTP: //*.*8.1.91/cgi-bin/second_1.html), я получаю ошибку в 500 Internal Server
я получаю эту ошибку в моем ERRORLOG:
[Wed Jun 12 15:40:07 2013] [error] [client *.*8.5.28] (8)Exec format error: exec of '/usr/lib/cgi-bin/second_1.html' failed
[Wed Jun 12 15:40:07 2013] [error] [client *.*8.5.28] Premature end of script headers: second_1.html
Я попытался запустить его как программу питона, я получаю те же 500 внутренняя ошибка сервера ошибок журнала показывает:
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28] File "
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28] /usr/lib/cgi-bin/second_1.py
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28] ", line
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28] 3
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28]
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28]
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28] <form action="/cgi-vin/second.py"method="get">
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28]
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28]^
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28] SyntaxError
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28] :
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28] invalid syntax
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28]
[Wed Jun 12 15:44:48 2013] [error] [client *.*8.5.28] Premature end of script headers: second_1.py
Я попытался добавить команду печати перед каждой линии, как и пихты t. Это тоже не сработало.
Далее я запускаю эти 2 непосредственно в своей системе, а не на сервере apache, который находится на другом IP-адресе. На этот раз form.html отлично работает, я получаю поля для ввода данных и отправки параметров, но теперь second.py не открывается на mozilla, каждый раз, когда я пытаюсь открыть его, он открывает программу в виде загружаемого файла.
Итак, форма работает на моем рабочем столе, а не на сервере apache. Сценарий Disply не работает на моем рабочем столе, но работает на сервере apache. Если я сделаю с моего рабочего стола подачу данных в экранный скрипт сервера apache, он работает. Как заставить форму работать на сервере и сценарий отображения на моем рабочем столе?
Я провел полдня, чтобы узнать, в чем проблема, но напрасно. Любая помощь будет принята с благодарностью.
Здравствуйте, pypat, спасибо, что ответили. Second.py работает правильно на сервере apache, у меня нет проблем с ним. Поскольку я не вводил его в первый раз, он запустил NoneNone, что я и предполагал. Форма вообще не будет открываться на сервере apache (что является первой проблемой), просто дает ошибку. Можете ли вы помочь мне исправить это? Что касается второй проблемы (second.py получение загруженного вместо работы на моем рабочем столе), есть ли способ сообщить firefox, что я хочу запустить его, а не скачать его? –
Хорошо, тогда я пропустил вопрос. Если вы не запустили это на своем рабочем столе, вам также понадобится какой-то веб-сервер. Браузер не создан для запуска .py. Я не работал с cgi, но я предполагаю, что вам нужно вернуть html и не распечатать его. – pypat