![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| r |
|
|||
|
Unregistered |
Потрясающе, что называется красота в программировании. Если конечно есть возможность дай линк, на тот мануал где ты это
прочитал про CGI.pm. У меня есть, но какой-то кривой и неполный. Сразу-же начал переписывать все скрипты по новой. Возникли вопросы. Буду задавать их постепенно.
Этот пример кода только с одной формой, а у меня их несколько, и в зависимости от данных переданных пользователем будет вызыватся какая-то из них, как мне поочерёдно принимать данные от них? Спасибо. Это сообщение отредактировал(а) korob2001 - 8.3.2005, 01:50 |
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Сылку я уже давал, так же читай книги по CGI программированию, особенно хочется выделить такие как: 1. Программирование на CGI.pm ( эта книга написана Линкольном Штэйном, автором модуля CGI.pm ). 2. CGI программирование на Perl (Скотт Гулич, Шишир Гундаварам, Гюнтер Бирзнекс). 3. Разработка CGI приложений на Perl ( Кевин Мельтцер, Брент Михальски ).
Даже если у каждой формы поля с одинаковыми именами, то можно присвоить разные имена для кнопок типа SUBMIT, по ним определять какая из форм была передана CGI программе. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| r |
|
||||
|
Unregistered |
Можно с этого момента поподробнее:))), т. к. как я только не пробовал.
iЭтот код выводит две формы, не дожидаясь пока получу параметры по первой, запутался... Это сообщение отредактировал(а) korob2001 - 8.3.2005, 01:49 |
||||
|
|||||
| r |
|
||||
|
Unregistered |
Нашёл перевод CGI.pm, но там пример, как получить параметры один, и совершенно не подходящий. Нужен хоть какой нибудь пример, как выдать форму и тут-же получить
данные из этой формы, и так раза три в одном скрипте. Пример который из гостевой книги непонятен:
Я тут кое-что придумал правда где-то ошибка...
Это сообщение отредактировал(а) korob2001 - 8.3.2005, 01:47 |
||||
|
|||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Насколько я поня, у тебя есть несколько форм на одной странице. Ты хочешь узнать какая из форм была передана, для этого присваиваешь разные имена кнопкам SUBMIT. Например имя этой кнопки для первой формы такое name => "form1", для кнопки второй формы name => "form".
Теперь можно определить, какая из форм была переданна, таким условием.
Можно было бы сделать и такую проверку:
Удачи. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| r |
|
|||
|
Unregistered |
Да, всё заработало, спасибо. Вопросы ещё остались. Первое, странно как-то у тебя блокируются файлы, где-то читал что блокировать надо дескриптор файла. Второе
раньше когда я не знал что такое CGI.pm у меня был такой код:
То есть открывал файл и выводил всё содержимое в броузер причем как видишь создавал линки на это содержимое с указанием скрипта который это обрабатывал. Теперь пытаясь обьединить все скрипты в один ума не приложу как это переписать. Скрипт просто сохранял текст линка в файл. Спасибо. Это сообщение отредактировал(а) korob2001 - 8.3.2005, 01:42 |
|||
|
||||
| korob2001 |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Всё верно, это когда блокируешь файлы в ручную. Я пользуюсь стандартным модулем Fcntl и нахожу этот способ более удобным. А вообще-то это дело вкуса. Как этот способ работает, я уже описывал ранее, в этой же теме.
Я не дома, потому нижеприведённый код не тестировал, но он не сильно большой, потому думаю ошибок не будет.
Удачи. PS: возникнут трудности, пиши. И ещё: При вставке кода, пользуйся кнопкой "Код". Предидущие посты я подправил, но как ты наверное понимаешь, я не буду делать это за тебя, постоянно. Все последующие сообщения в которых будет вставлен код без подсветки, будут удаляться. Облегчи труд всех участников, хотя бы этим. Это сообщение отредактировал(а) korob2001 - 8.3.2005, 01:57 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||
|
|||||||
| Guest |
|
||||||
|
Unregistered |
Привет korob2001, ты неправильно понял, смысл не в том как вставить линк. А в том что теряется идея обьединить все скрипты в один получается все равно вот так:
и вызывается другой скрипт, и не важно, сделано как линк или через форму. Но это не важно, подумаешь будет два скрипта раз CGI.pm не совершенен. Теперь другой вопрос вот html:
А вот как с помощью CGI.pm:
совершенно разное отображение, количество столбцов разное. Спасибо. |
||||||
|
|||||||
| r |
|
||||||
|
Unregistered |
Виноват маэстро, простите, кривые руки.
Вот что мне надо было. Правда вот эти штуки остались ' ' вокруг текста в файле, ну это мелочи. Ну и здесь подправил:
А по таблицам вопрос не закрыт. Спасибо. |
||||||
|
|||||||
| korob2001 |
|
||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Это само собой разумеется, убери эти символы из своего кода. Другими словами, просто замени эту строку:
на такую
И найди отличие, тогда всё станет на свои места.
Не знаю на сколько правильно я тебя понял, постараюсь пояснить на примере:
Если хочешь выводить только 2 цвета, просто удали не нужные цвета из массива @colors и добавь дополнительный вызов функции в условной конструкции unless. Таким образом:
Для чего мы добавили дополнительный вызов функции в unless, догадайся сам. Поэксперементируй с этим кодом, поробуй не добавлять вызов change_color, пробуй изменить условие в цикле и т.п. Удачи. Это сообщение отредактировал(а) korob2001 - 9.3.2005, 04:27 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||||||||
|
|||||||||||||
| r |
|
|||
|
Unregistered |
Привет Всем, особенно Комодераторам, последний пример был супер, не в плане цвета, а как пример, я переписал все формы!!!!!!! Думаю поискать книгу в инете, про этот чудный модуль CGI.pm, а то в нашем городке об этой книге никто даже не слышал, кто нибудь если знает хороший магазин пишите сюда. Ну и ещё есть вопросик, никак не могу убрать из строки первый символ может это из-за кирилицы. Спасибо.
|
|||
|
||||
| korob2001 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Допустим есть такая строка "тпривет, мир!", на выходе мы хотим видеть её, в таком виде "Привет, мир!".
теперь наша строка выглядит так "привет, мир", для того что бы преобразовать первый символ в верхний регистр, можно воспользоваться функцией ucfirst(), либо заюзать эскейп-последовательности, есть и другие способы, но эти пожалуй семые эффективные.
Заметь, что ничего не изменилось, строка так и осталась такой "привет, мир!". Причина в том, что некоторые функции Perl не всегда верно работают с символами кирилицы и теми языками где имспользуются диактрические знаки. Нам просто нужно подключить прагму use locale, она даёт компилятору команду использовать национальные установки из POSIX, её можно так же и отменить, таким способом no locale. Подправим вышеприведённый код:
Теперь строка будет выглядеть так "Привет, мир!". Вот так можно добиться того же эффекта, с помощью эскейп-последовательностей:
Но это, на мой взляд не самый удобный способ, куда удобнее работать с функцией ucfirst(), хотя это тебе решать, как ты будешь обрабатывать строку. Удачи. Это сообщение отредактировал(а) korob2001 - 13.3.2005, 23:02 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||||
|
|||||||||
| r |
|
|||
|
Unregistered |
Спасибо, буду пробовать. Зайду если что.
|
|||
|
||||
| r |
|
|||
|
Unregistered |
Привет Всем Постояльцам, тут вот закавыка вышла, первый символ я удалил, все нормально, а проблема вот в чем: у меня есть список у которого строки пронумерованы и когда необходимо удалить одну цифру это работает, но когда надо удалить например вот такое число: 1236?
С регулярными выражениями никак не подружусь. Спасибо. P.s. У Вас ошибка на странице выскакивает. |
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Этот код немного излишен, такак его цель удалить не просто цифру в начале строки, а ещё и символы пробела если таковые есть. Удачи Это сообщение отредактировал(а) korob2001 - 24.3.2005, 00:47 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |