Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение генерируемой страницы 
:(
    Опции темы
boltayka
  Дата 5.12.2009, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 5.12.2009

Репутация: нет
Всего: нет



Проблема такая... Раскручиваю чужой сайт на Perl.. Решил начать с создания ЧПУ. Написал его при помощи mod_rewrite, красивые ссылки работают.
Но вот появилась проблема. Как изменить ссылки на странице?.
Страницы генерируются с помощью одного cgi файла. Нужна функция, которая при генерации страницы заменяла бы в ней:
cgi-bin/ip.cgi?= на i/
 smile 

Думаю, сам разберусь, куда его сунуть. Но все же на всякий случай выложу файл основной.

Это сообщение отредактировал(а) boltayka - 5.12.2009, 18:20

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  ip.cgi 26,36 Kb
PM MAIL   Вверх
Itsys
Дата 5.12.2009, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: нет
Всего: 34



В любом текстовом редакторе есть такая полезная опция "Замена/Replace", обычно расположена в меню "Редактировать/Edit".
PM MAIL WWW Skype   Вверх
boltayka
  Дата 6.12.2009, 12:05 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 5.12.2009

Репутация: нет
Всего: нет



Itsys, Я конечно оценил твой юмор, но он здесь немного не уместен...
Если бы все было бы так просто - я бы сюда не полез.
При изменении ссылок - меняется код, и возникает ряд проблем, которые решить практически не-реально для меня (т.к. Код чужой (js), и без комментариев совсем) Копался по интернету, наткнулся на подсказку - что надо создать файл-посредник, и в нем уже надо писать код...
Очень надо. Если кто поможет - свяжемся, маленько отблагодарю.

PM MAIL   Вверх
Itsys
Дата 6.12.2009, 22:43 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: нет
Всего: 34



Цитата(boltayka @  6.12.2009,  12:05 Найти цитируемый пост)
что надо создать файл-посредник, и в нем уже надо писать код

Зачем? Способ, который я описал самый быстрый и надежный
Цитата(boltayka @  6.12.2009,  12:05 Найти цитируемый пост)
При изменении ссылок - меняется код, и возникает ряд проблем

Каких проблем? Приведи хотя бы один пример...
PM MAIL WWW Skype   Вверх
ad280379
Дата 7.12.2009, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 2.12.2009

Репутация: нет
Всего: нет



Цитата(boltayka @ 5.12.2009,  18:18)
Проблема такая... Раскручиваю чужой сайт на Perl.. Решил начать с создания ЧПУ. Написал его при помощи mod_rewrite, красивые ссылки работают.
Но вот появилась проблема. Как изменить ссылки на странице?.
Страницы генерируются с помощью одного cgi файла. Нужна функция, которая при генерации страницы заменяла бы в ней:
cgi-bin/ip.cgi?= на i/
 smile 

Думаю, сам разберусь, куда его сунуть. Но все же на всякий случай выложу файл основной.

конструкцию cgi-bin/$fn_proj.cgi? меняем на $fn_proj
переменную $fn_proj='i/'
я вот только не понял откуда вы откопали cgi-bin/ip.cgi?=
и с чего вы решили что js что-то меняет. 

P.S. если я конечно вообще вас правильно понял.

Код

$fn_proj='ip';
if ($ENV{'SERVER_ADDR'} eq '127.0.0.1' || $ARGV[0]) {
  $www='http://127.0.0.1/';
  $home="${www}$proj/";
  $path="../../www/$proj/";
  $cgi=$scrpath="${www}cgi-bin/$fn_proj.cgi?";
  do '../../bin/all_comm.pl';
} elsif ($ENV{'SERVER_NAME'}=~/www.cross-info.com.ru/) {
  $www='http://www.cross-info.com.ru/';
  $home="${www}$proj/";
  $path="../../www/$proj/";
  $cgi=$scrpath="${www}cgi-bin/$fn_proj.cgi?";
  do '../../bin/all_comm.pl';
} else {
  $www="http://www.$proj.ru/";
  $home="${www}";
  $path="../";
  $cgi=$scrpath="${www}cgi-bin/$fn_proj.cgi?";
  do 'all_comm.pl';
}




Это сообщение отредактировал(а) ad280379 - 7.12.2009, 09:38
PM MAIL   Вверх
boltayka
Дата 8.12.2009, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 5.12.2009

Репутация: нет
Всего: нет



ad280379, адреса ссылок кончаются на cgi-bin/ip.cgi?tema=..
http://www.interplastic.ru/cgi-bin/ip.cgi?tema=about

Меню прописано в двух JS файлах.
В одном база ссылок, в другом код двух меню.. Изменяю то - в котором все на русском (товары), и при нажатии на тот или иной товар в ссылке вместо положенных %DE%E5 появляются русские буквы.. Соответственно появляются баги с кодировкой, и нахождением раздела в базе.

Пробовал кодировки файлов менять, бестолку
PM MAIL   Вверх
Itsys
Дата 8.12.2009, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: нет
Всего: 34



Эх... кто же делает такую навигацию... Надо либо код раздела использовать, либо латинские буквы..
По идее, если у Вас не стоит флаг в правиле "noescape|NE", то mod_rewrite должен экранировать русские буквы, хотя, может быть это работает только со специальными символами.

ЗЫ Дополнительный скрипт здесь не поможет. Можете попробовать написать доп правила для преобразования русских букв в шестнадцатеричное представление. Добавится всего 33 правила.

Добавлено через 1 минуту и 13 секунд
ЗЗЫ Да, есть еще вариант - написать JS скрипт, который будет этим заниматься при загрузке страницы. Но это не комильфо.

Добавлено через 3 минуты
Или изменить скрипт, который генерирует меню, чтобы сразу сам экранировал при генерации.
PM MAIL WWW Skype   Вверх
boltayka
Дата 9.12.2009, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 5.12.2009

Репутация: нет
Всего: нет



Цитата

ЗЫ Дополнительный скрипт здесь не поможет. Можете попробовать написать доп правила для преобразования русских букв в шестнадцатеричное представление. Добавится всего 33 правила.

  smile 

Цитата

ЗЗЫ Да, есть еще вариант - написать JS скрипт, который будет этим заниматься при загрузке страницы. Но это не комильфо.

 smile 



З.Ы. - База будет потихоньку обновляться.. Так что и это надо предусмотреть...
Буду очень благодарен
PM MAIL   Вверх
Itsys
Дата 10.12.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: нет
Всего: 34



Ох уж эти халявщики...
Код

RewriteRule б %E1

PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0746 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.