Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проблема с CGI / 10 сообщений из 10, страница 1 из 1
25.05.2008, 19:21
    #35333899
Novichok!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CGI
Привет всем. У меня возникла небольшая проблема, может кто-то уже с таким сталкивался и сможет помочь советом? Имеется CGI скрипт написанный в питоне:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
import cgi
import Cookie
form = cgi.FieldStorage()
a = form["s1"].value
c = Cookie.SmartCookie()
c["st1"] = a
print "Content-type: text/html"
print c
print

print a

print '<form name="f2" action="2.py">'
print '<input type="text" name="s2" size="15" />'
print '<input type="Submit" value="Go!" />'
print '</form>'


Проблема заключается в следующем: после того как из браузера передались параметры в cgi, в браузере показывается код скрипта cgi в том виде в каком он написан выше :(

я не понимаю почему.... Помогите, пожалуйста...
...
Рейтинг: 0 / 0
25.05.2008, 21:28
    #35333998
Николай Кальмарский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CGI
Я так понимаю, что если показывается именно код скрипта, значит проблема в http сервере. Хотя и сам скрипт неправильный, корректней было бы писать хотя бы так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
import cgi
import Cookie
form = cgi.FieldStorage()
a = form["s1"].value
c = Cookie.SmartCookie()
c["st1"] = a
print "Content-Type: text/html"
print c.output()
print

print '<html>'
print '<body>'
print '<pre>'
print a
print '</pre>'
print '<form name="f2" action="2.py">'
print '<input type="text" name="s2" size="15" />'
print '<input type="Submit" value="Go!" />'
print '</form>'
print '</body>'
print '</html>'

Но! В любом случае, ВЕСЬ скрипт показываться не должен был бы. По идее, из-за ошибки в определении типа контента должен показаться вывод скрипта как текст. Но не сам скрипт....
...
Рейтинг: 0 / 0
25.05.2008, 21:29
    #35334003
Николай Кальмарский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CGI
То есть вопрос -- что за сервер используется и что в логах пишется.
...
Рейтинг: 0 / 0
25.05.2008, 21:34
    #35334008
Novichok!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CGI
Тестирование web-приложения провожу с помощью модуля
CGIHTTPServer из стандартной поставки Python. то есть сначала запускаю
файл CGIHTTPServer.py
...
Рейтинг: 0 / 0
25.05.2008, 21:48
    #35334025
Novichok!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CGI
У меня действительно ошибка в том что я наверное не так запускаю.. что ли....
ПО идеи надо было просто запустить CGIHTTPServer.py затем открыть браузрер... и там набрать... http://localhost/cgi/index.htm..... в папке как раз и находиться файл который приведен выше... но так вообще ничего не работает....
...
Рейтинг: 0 / 0
25.05.2008, 21:48
    #35334026
Frenzy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CGI
цгишку положите в /cgi-bin или пропишите cgi_directories вашего хендлера
...
Рейтинг: 0 / 0
25.05.2008, 22:00
    #35334034
Novichok!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CGI
Frenzyцгишку положите в /cgi-bin или пропишите cgi_directories вашего хендлера


не понятно....
...
Рейтинг: 0 / 0
25.05.2008, 23:10
    #35334108
Novichok!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CGI
можно поставить вопрос вот так:

есть папка допустим 1 в ней находится файл "CGIHTTPServer.py" и папка "cgi_bin", а в папочке "cgi-bin" - файл "index.html" и два файла 1.py и 2.py

Содержимое файла 1.py:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
import cgi
import Cookie
form = cgi.FieldStorage()
a = form["s1"].value
c = Cookie.SmartCookie()
c["st1"] = a
print "Content-Type: text/html"
print c.output()
print

print '<html>'
print '<body>'
print '<pre>'
print a
print '</pre>'
print '<form name="f2" action="2.py">'
print '<input type="text" name="s2" size="15" />'
print '<input type="Submit" value="Go!" />'
print '</form>'
print '</body>'
print '</html>'

Содержимое файла 2.py:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
def lab7(sp):
    dic = {}
    n = 0
    for j in range( len(sp) ):
        x = sp[j]
        for i in range( len(sp) ):
            if sp  == x:
                n += 1
        dic[ sp[j] ] = n
        n = 0;
    return dic

import os, Cookie
c = Cookie.SmartCookie()
c.load(os.environ["HTTP_COOKIE"])

print "Content-type: text/html"
print c["st1"].value
print

import cgi
form = cgi.FieldStorage()

st2 = form["s2"].value
st1 = c["st1"].value

st = st1+st2

print '<center><b>'
print lab7(st)
print '</center></b>'
 

в свою очередь index.html это обычный статический HTML документ

запускаю CGIHTTPServer.py, потом браузер, в строке набиваею http://localhost/cgi-bin/index.htm и ииии
ничего.. вот что не так? Не судите строго с Python знакома совсем чуть чуть.... а это лабораторная работа.... и надо срочно сделать...
...
Рейтинг: 0 / 0
25.05.2008, 23:41
    #35334126
Frenzy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CGI
положи куда-нибудь CGIHTTPServer.py, туда же свой index.html, потом создай там же папку cgi-bin (именно минус а не подчеркивание), в эту папку цги-бин положи два своих .пи файла.

Потом открой консоль (пуск-выполнить-cmd) пойди в исходную папку где у тебя CGIHTTPServer.py, запусти его (просто написав CGIHTTPServer.py)

Он тебе должен написать чего-нибудь типо
Код: plaintext
Serving HTTP on  0 . 0 . 0 . 0  port  8000  ...
- это окно не закрываешь, смотришь какой порт он назвал, дальше его подставляешь: запускаешь браузер и пишешь http://localhost:8000/index.html - должно показать твой индекс.хтмл. пишешь http://localhost:8000/cgi-bin/1.py - должно выполнить твой скрипт и вывести результат

это всё будет работать только если у тебя нормально питон установлен (а именно когда 2 раза по .пи-файлу клацаешь он выполняется питоном - а иначе он откроется той программой с которой ассоциированно расширение .пи, вместо того чтобы выполниться)

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
26.05.2008, 00:50
    #35334163
Novichok!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CGI
Frenzy СПАСИБО БОЛЬШОЕ!!!!!!!! Все заработало.....
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проблема с CGI / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]