Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: разработка для Web > Небольшая проблема с гостевой книгой |
Автор: Shadow_1512 8.2.2006, 13:42 | ||
Суть проблемы: Есть некий сайт, у которого есть гостевая книга. Сайтик работает под Apache 1.3 на Unix-сервере. Все замечательно. Взяли Windows-сервер, поставили Apache 2 (не бейте меня ![]() Гостевая книга не работает, когда ей отдаешь в одном из полей русские символы. Как только все символы латиницей - все ок, как только русские - беда. Для передачи данных используется GET-метод, используется модуль CGI, функция param, в которую, как я понял, встроены декодировщики данных. В чем прикол? Проблема в том, что модуль писал не я, да и вообще я с перлом знаком слабо, мое основное поле деятельности - PHP. Так что вся надежда на вас. Заранее спасибо.
Ошибка, которую в логах апача я нашел - (22)Invalid argument: couldn't create child process: 22: guest.cgi, referer: * (22)Invalid argument: couldn't spawn child process: * Повторюсь - когда форму заполняешь латинскими символами - все ок. А когда все это работало на Unix'e под Apache 1.3 вообще проблем не было. Криво я перенес что ли или существуют тонкости, о которых я не знаю? |
Автор: korob2001 8.2.2006, 16:05 |
Привиди часть кода, где программа разделяется на процессы. Судя по ошибке, она не может создать дочерний процесс. |
Автор: Shadow_1512 26.2.2006, 10:35 | ||||
Извиняюсь, что долго молчал - вопрос на некоторое время перестал быть актуальным. Значит что происходит - происходит следующее: есть некая ссылка, которая ведет на http://somehost.com/guest.html. Содержимое guest.html привожу ниже:
Как можно видеть основным тут является момент, где вызывается guest.shtml?$QUERY_STRING. Привожу содержимое guest.shtml
Здесь есть вызов трех скриптов, которые все не работают после добавления записи в гостевую, когда есть хотя бы одно поле, заполненное кирилицей (хотя несопредственно к гостевой никакого отношения не имеют) и естественно работают на других страницах, на которых вызываются. Нас интересует гостевая....(guest.cgi). Ну так что - если вызывать guest.cgi а вместо $QUERY_STRING вставить ту строку, что добавляется в URL после сабмита формы (в том числе параметры кириллицей), то запись успешно добавляется и все ок. Стало быть, обломное местно, на мой взгляд именно в вызовах <!--#include virtual="/cgi-bin/guest.cgi?$QUERY_STRING" -->. А вот что тут не так, я, как не специалист PERL сказать не могу. Повторюсь, если все латиницей - все работает! |
Автор: Shadow_1512 28.2.2006, 13:33 |
Ну что, товарищи, неужели действительно сложная проблема и никто никогда не сталкивался? Или ждать, пока придет всемогущий korob2001 ?? Может он что знает... |
Автор: sharq 28.2.2006, 21:03 | ||
Shadow_1512, возможно проблема заключается в настройках Apache 2! Возможно еще и такой вариант - добавь эти строки в начало твоих скриптов:
Если не поможет, привиди код "камня предкновения" (по-твоему мнению), потестируем. ![]() |
Автор: korob2001 1.3.2006, 23:04 | ||||
Как ты принимаешь параметры? Как декодируешь их? Сохрани этот код, в файл guest.cgi и положи его вместо одноимённого файла в каталог /cgi-bin, затем запусти файл guest.html и попробуй передать ему параметры, примерно так:
или через свою форму.
Если увидешь в окне браузера преданные параметры, значит они чудно доходят до CGI программы. Потому можешь смело показывать часть скрипта, где ты получаешь и декодируешь полученные данные. У меня параметры успешно дошли до программы CGI. |
Автор: Violetgem 23.8.2022, 07:52 |
Модератор: Сообщение скрыто. |