Не могу получить доступ к cookie в Python (2.4) - PullRequest
0 голосов
/ 16 декабря 2010

У меня есть сценарий CGI, для которого я успешно установил файл cookie (который я вижу в Firefox / Chrome!), Который имеет (скажем) имя uid и содержимое 1. Кажется, я не понимаю, как получить доступ к этому cookie из другого скрипта CGI - и я работаю в Python 2.4, поэтому многие примеры, которые я нашел, могут не применяться.

Этот код выводит сообщение "not get uid", за которым следует остальная часть страницы:

c = Cookie.SimpleCookie(os.environ.get("HTTP_COOKIE"))
print("Content-Type: text/html")
print c.output()
print("\n\n")
uid = c.get("uid")
#uid = c["uid"].value # this would create an error and page would fail totally
if uid is None: 
    print("can't get uid")
    uid = 1 # set manually to prevent the rest of the page from failing

Я не сделал ничего подозрительного с доменом, к которому относится cookie, поэтому я не понимаю, почему это не захватывает значение uid. Кстати, если я попытаюсь напечатать c.output (), он будет пустым.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2010

Ладно, думаю, я понял это!Я подтвердил, что os.environ.get ("HTTP_COOKIE") что-то получал, а затем поиграл с порядком элементов в моем крошечном тесте, пока он не заработал.Затем я воспроизвел этот порядок в моем более сложном сценарии.(В частности: объявление типа содержимого, две строки, получение cookie, получение значения из cookie, все остальное.)

Главное, что я узнал о Python и CGI, это то, что порядок элементов (начиная с содержимогообъявление типа) очень суетливо.Большое спасибо за подсказки в правильном направлении.

0 голосов
/ 16 декабря 2010

Во-первых, вы уверены, что веб-сервер или фреймворк устанавливает переменную окружения HTTP_COOKIE?В противном случае в одном из ваших сценариев вы можете сохранить файлы cookie в файле CookieJar в файловой системе и получить доступ к установленным файлам cookie оттуда.другой скрипт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...