Перемещение приложения Perl, в результате чего моя голова взорвется ... пожалуйста, помогите - PullRequest
1 голос
/ 24 сентября 2010

Я пытаюсь переместить имеющееся у нас веб-приложение (написанное на Perl) с сервера IIS6 на сервер IIS7.5.

Кажется, что все выполняется правильно, у меня просто есть некоторые проблемызаставить приложение работать на самом деле.

Приложение представляет собой пару форм.Вы заполняете первую форму, нажимаете кнопку «Отправить», и она представляет вам другую форму, в зависимости от того, какие флажки вы выбрали (с использованием включений и т. Д.).

Я могу пройти первую форму один раз ... но потом после этогоон перестает работать и всплывает сгенерированное сообщение об ошибке.Изучив код и тому подобное, он в основном заявляет, что флажки не установлены.

Я знаю, что приложение записывает данные в файлы .dat ... (в какой момент я пока не уверен), но я не вижу созданных.Я посмотрел на права доступа к файлам / каталогам и, похоже, у меня на новом сервере больше прав, чем на последнем.Пользователь / группа для файлов / каталогов разные, хотя ...

Это как-то связано с этим?Зачем мне переходить на следующую форму, отображая правильные «модули», которые я проверил в первый раз, а затем не в другой раз после этого?(кажется, что через некоторое время он сам перезагружается)

Я знаю, что это сложно, поэтому, если у вас есть какие-либо вопросы ко мне, пожалуйста, задавайте, и я отвечу в меру своих возможностей:).

Кстати, полный идиот, когда дело доходит до Perl.

ВНОВЬ РЕДАКТИРОВАТЬ Я удалил источник, чтобы не обнаруживать никаких уязвимостей в безопасности ... Спасибо, что указал на это.

Я не уверен, что еще нужно сделать, чтобы показать, что именно происходит с этим: (.

Ответы [ 2 ]

1 голос
/ 24 сентября 2010

То, что вам нужно сделать, понятно.

В сценарии много странного сверхнормативного багажа. Казалось, нет никаких подпрограмм. Всего одна длинная серия команд с глобальными переменными.

Настало время начать рефакторинг.

Запускай одну вещь за раз.

Я видел HTML::Template там, но у вас все еще был сырой HTML, смешанный с кодом. Отдельный код от презентации.

1 голос
/ 24 сентября 2010

Я бы порекомендовал проверить, шаг за шагом, что то, что, по вашему мнению, происходит, действительно происходит.Начните с просмотра HTTP-запроса от вашего браузера к веб-серверу - действительно ли аргументы, которые ваш второй Perl-скрипт ожидает, будут переданы на сервер?Если нет, вам нужно исправить первый скрипт.

(начать редактирование)

Существует множество инструментов для отслеживания сетевого трафика.

  • Wireshark будет считывать трафик при его прохождении по сети (вы можете запустить его в отправляющей или принимающей системе или любой системе в домене коллизий).
  • Вы можете использовать прокси-сервер, такой как WebScarab (бесплатный), Burp, Paros и т. Д. Вам нужно будет настроить браузер для отправки трафика на прокси-сервер, который затем будет пересылать запросы на сервер,Эти конкретные серверы предназначены для помощи в тестировании, так как вы сможете связываться с запросами по мере их поступления (и многое другое)
  • Как указывает Синан, вы можете использовать аддоны браузера, такие как Fx LiveHttpHeaders илиДанные взлома или набор разработчика Internet Explorer (IIRC)

(окончание редактирования)

Далее необходимо распечатать все аргументы CGI, что второй сценарий Perlполучает.Таким образом, вы будете знать, что на самом деле думает сценарий.

Затем вы можете включить подробное ведение журнала в IIS, чтобы он регистрировал полный HTTP-запрос.

Это поможет вамближе к источнику проблемы - вы узнаете, если (а) это первый скрипт, который не создает правильный HTML, что приводит к неполному HTTP-запросу от браузера, (б) сервер IIS не получает аргументы CGI по какой-то странной причинеили (c) аргументы не передаются с сервера IIS в сценарий perl (или, возможно, сценарий perl неправильно обращается к аргументам).

Удачи!

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