![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Alximik |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
Суть вопроста такова:
Есть форма (писана на wml) которая передает методом GET два параметра Ник и Сообщение
в фаил edd_post.pl в котором должны произойти прием и запись этих данных в текстовый фаил. Как их записать я знаю
(если ошибся в коде поправьте) а вот как их принять? чтобы потом произвелась запись. Прошу прощения за откровенно ламерский вопрос но просто только начал изучать perl третий день бьюсь неполучается.... отчаился решил написать... Неоткажите в помощи плз... |
||||
|
|||||
| sharq |
|
||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Alximik все через это проходили, а ты отчаянный, аж три дня бился
Все очень просто, параметры, которые передаются скрипту ты можешь получить, используя стандартный модуль CGI или в ручную. Я советую тебе юзать модуль CGI, потому что это просто my.pl
Только для того, чтобы этот скрипт обрабатывал введенную инфо с формы, нужно в форме указать, что этот скрипт является обработчиком данной формы, то есть: form.html - это тебе для примера
Надеюсь, разберешься. Это сообщение отредактировал(а) sharq - 24.7.2005, 10:31 -------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||
|
|||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Загляни на http://www.ru-board.com/new/print.php?sid=47
Там с комментариями. Стандартная процедурка... Просто включаешь в скрипты, обрабатывающие формы и все... Если в коде есть опечатки (всякое бывает), забей в поисковик фразу "Заменяем плюсы на пробелы" - получишь кучу ссылок с тем же самым кодом... Удачи! --------------------
Я не волшебник, я только учусь... |
|||
|
||||
| chaos |
|
||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
1) наверное правельно будет записать так print FILE "$nick;;$post\n"; (убрал запятую) тк если мне память не изменят перл выругается 2)унлок наверное надо делать до того как ты закрыл файл |
||||||
|
|||||||
| Alximik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
Всех благодарю за советы
|
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
вот самый простой вариант
Это сообщение отредактировал(а) chaos - 21.7.2005, 08:09 |
|||
|
||||
| sharq |
|
||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
chaos
да именно так, просто не тестировал, а писал по памяти Про чтение можно так:
Это точно работает. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||
|
|||||
| chaos |
|
||||||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
не думай что я на тебя бочку качу Добавлено @ 11:57
а у тя он весь файл вываливает |
||||||||||
|
|||||||||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
chaos я и не думаю
Я показал как можно не париться с циклом, а обойтись станд. оператором. А массив при создании, если так необходимо, можно ограничить только 10 записями. И это уже пустяки... Это сообщение отредактировал(а) sharq - 21.7.2005, 12:09 -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Вот и еще однин с удалением из массива просмотренных записей
Вариантов достаточно много. Все зависит того, что тебе нужно дальше и сколько у тебя записей... --------------------
Я не волшебник, я только учусь... |
|||
|
||||
| Alximik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
Сталкнулся с такой проблемой по таму методе как фаил должен читать все читает нормаьно а писать в фаил почемуто отказывается.... пользуюсь Деневером.... может както нужно chmod выставлять на *.txt ? если да то как это сделать на локальной машине и на Деневере в частности?
|
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Alximik на какой оси ты запускаешь скрипт?
на Windows, тогда тебе права никакие не нужны. если на nix, то файлам нужно поставить права: 0666. если ты на Windows-платформе и не получается записать в файл, привели код и логи, если они есть. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| Alximik |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
Запускаю под Виндой
из формы передается вот в этот скрипт:
а вот это log ошибок
|
||||
|
|||||
| wladk |
|
|||
|
Unregistered |
Здается мне, что у тебя как то по кривому перл встал. По кривому, в смысле отсутсуют некоторые необходимые переменные окружения. В данном случаее @INC , в смысле в ней лежит только текущий каталог. "." А путей, к установленным модулям нету. Уверен, что такиеже сообщения тебя ждут для каждого из подсоединяемых модулей. Так что разбирайся с установкой.
|
|||
|
||||
| Sadok |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
Alximik
Чего-то я не понял, это лог Апача? Если да, то
говорит о том, что скрипт у тебя не выдает http-заголовки. Копать в сторону
|
||||||
|
|||||||
| Alximik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
Лог выдаваемы программой Деневер кто незнает что это такое может ознаомиться вот тут http://www.denwer.ru/ как оказалось в даном пакете perl поставляется без стандартных библиотек этим думаю все и объясняется т.к. паралельно пользуюсь еще и AktivPerl он эту работу продеывает замечатеьно без косяков. Т.е. буду искать естьли на сайте разработчика стандартные perl библиотеки и модули.
|
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Alximik просто у тебя нет прагмы strict, об этом лог и пишет. Поэтому отключи ее и запусти снова скрипт.
Поставь себе Apache+perl и проблем не будет. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| Alximik |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
а что это за программа? можно ли ее както поставить? сечас поставил связку Small HTTP Server + perl начала ругаться вот на эту строчку
а еще возникла следующая проблема тоже как мне кажется довольно страная... есть вот этот скрипт
когда запускаю этот скрипт из командной строки он почемуто текст в *.txt файл недобовляет если же я запускаю его просто кликом мыши скрипт выполняется нормально в чем может быть дело? пользую все тоже ActivPerl. |
||||||
|
|||||||
| Guest |
|
||||||||||
|
Unregistered |
http://httpd.apache.org/download.cgi Только определись с версией. Желательно ставить туже, что и на предпологаемом хостинге. есть разница междку ветками 2,х и1,3,х А перл
Путь настоящего самурая!:)
Не находит он этот модуль.... Может не входит в поставку.... вообщем попробуй его поставить... |
||||||||||
|
|||||||||||
| Sadok |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
Alximik
Пути разные. |
|||
|
||||
| Alximik |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
после переустановки perla в купе с Апачем начала выдавать вот это:
собсевено вот код скрипта:
т.е. если я правельно считаю синтаксическая ошибка вот тут:
около "(:" как пишет сервак. что скажите? и кстати если я уберу use strict; какже мне тогда заставить скрипт принимать значения переменых $nick;;$post чтоб потом писать их в фаил? |
||||||
|
|||||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Спасает от глупых ошибок. Немного подробнее здесь http://www.uic.vsu.ru/support/perlerror.htm Если уверен, что все будет Ok, можешь не использовать... --------------------
Я не волшебник, я только учусь... |
|||
|
||||
| sharq |
|
||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Дорогой Alximik
ты путаешь с модулем CGI
найди отличие! Молодец, что поставил Apache и perl. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||
|
|||||
| Alximik |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
возникла такая проблема из формы посыается все теже нещасные nick и post вот код формы (может ошибка в ней)
обробатывает этим данные файл my.pl который должен содержимое строк nick и post записать в текстовый файл
а он вместо этого почемуто пишет только : которое стоит между $nick и $post
как мне кажется косяк в форме может кто знаком с wml может помоч? или я неправ? |
||||||
|
|||||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Alximik косяк в руках
Для того чтобы скрипт my.pl получил поля nick и post их необходимо передать в теге go! Читай документацию по wml и все станет на свои места.
К сожалению, проверить не могу, по логике - вроде бы правильно. Здесь используется два вида отправки данных обработчику. В скрипте my.pl можешь сделать проверку: если nick и post пустые, то не писать в gb.txt. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
![]()
|
| Правила форума "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. |