|
Модераторы: korob2001, ginnie |
|
Shadow_1512 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 3.12.2004 Репутация: нет Всего: нет |
Суть проблемы:
Есть некий сайт, у которого есть гостевая книга. Сайтик работает под Apache 1.3 на Unix-сервере. Все замечательно. Взяли Windows-сервер, поставили Apache 2 (не бейте меня), скопировали сайтик на новый хост, установили туда Перл, ПХП ну и т.д. Поменяли пути в cgi-файлах - запускаем. В целом, сайт работает как и ранее. Т.е. cgi-скрипты работают, работа с бд как обычно. Но... Гостевая книга не работает, когда ей отдаешь в одном из полей русские символы. Как только все символы латиницей - все ок, как только русские - беда. Для передачи данных используется 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 |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Привиди часть кода, где программа разделяется на процессы. Судя по ошибке, она не может создать дочерний процесс.
Это сообщение отредактировал(а) korob2001 - 8.2.2006, 16:06 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Shadow_1512 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 3.12.2004 Репутация: нет Всего: нет |
Извиняюсь, что долго молчал - вопрос на некоторое время перестал быть актуальным. Значит что происходит - происходит следующее:
есть некая ссылка, которая ведет на 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 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 3.12.2004 Репутация: нет Всего: нет |
Ну что, товарищи, неужели действительно сложная проблема и никто никогда не сталкивался?
Или ждать, пока придет всемогущий korob2001 ?? Может он что знает... |
|||
|
||||
sharq |
|
|||
Perl Liker Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Shadow_1512, возможно проблема заключается в настройках Apache 2!
Возможно еще и такой вариант - добавь эти строки в начало твоих скриптов:
Если не поможет, привиди код "камня предкновения" (по-твоему мнению), потестируем. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
korob2001 |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Как ты принимаешь параметры? Как декодируешь их?
Сохрани этот код, в файл guest.cgi и положи его вместо одноимённого файла в каталог /cgi-bin, затем запусти файл guest.html и попробуй передать ему параметры, примерно так:
или через свою форму.
Если увидешь в окне браузера преданные параметры, значит они чудно доходят до CGI программы. Потому можешь смело показывать часть скрипта, где ты получаешь и декодируешь полученные данные. У меня параметры успешно дошли до программы CGI. Это сообщение отредактировал(а) korob2001 - 2.3.2006, 14:23 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
Violetgem |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 23.8.2022 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |