| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > Прием и запись в txt ваил |
| Автор: Alximik 21.7.2005, 00:46 | ||||
| Суть вопроста такова: Есть форма (писана на wml) которая передает методом GET два параметра Ник и Сообщение
в фаил edd_post.pl в котором должны произойти прием и запись этих данных в текстовый фаил. Как их записать я знаю
(если ошибся в коде поправьте) а вот как их принять? чтобы потом произвелась запись. Прошу прощения за откровенно ламерский вопрос но просто только начал изучать perl третий день бьюсь неполучается.... отчаился решил написать... Неоткажите в помощи плз... |
| Автор: sharq 21.7.2005, 01:37 | ||||
| Alximik все через это проходили, а ты отчаянный, аж три дня бился Все очень просто, параметры, которые передаются скрипту ты можешь получить, используя стандартный модуль CGI или в ручную. Я советую тебе юзать модуль CGI, потому что это просто my.pl
Только для того, чтобы этот скрипт обрабатывал введенную инфо с формы, нужно в форме указать, что этот скрипт является обработчиком данной формы, то есть: form.html - это тебе для примера
Надеюсь, разберешься. |
| Автор: Usya 21.7.2005, 06:21 |
| Загляни на http://www.ru-board.com/new/print.php?sid=47 Там с комментариями. Стандартная процедурка... Просто включаешь в скрипты, обрабатывающие формы и все... Если в коде есть опечатки (всякое бывает), забей в поисковик фразу "Заменяем плюсы на пробелы" - получишь кучу ссылок с тем же самым кодом... Удачи! |
| Автор: chaos 21.7.2005, 06:38 | ||||||
1) наверное правельно будет записать так print FILE "$nick;;$post\n"; (убрал запятую) тк если мне память не изменят перл выругается 2)унлок наверное надо делать до того как ты закрыл файл |
| Автор: Alximik 21.7.2005, 07:50 |
| Всех благодарю за советы |
| Автор: chaos 21.7.2005, 08:09 | ||
вот самый простой вариант
|
| Автор: sharq 21.7.2005, 11:40 | ||||
chaos
да именно так, просто не тестировал, а писал по памяти Про чтение можно так:
Это точно работает. |
| Автор: chaos 21.7.2005, 11:54 | ||||||||||
не думай что я на тебя бочку качу Добавлено @ 11:57
а у тя он весь файл вываливает |
| Автор: sharq 21.7.2005, 12:03 |
| chaos я и не думаю Я показал как можно не париться с циклом, а обойтись станд. оператором. А массив при создании, если так необходимо, можно ограничить только 10 записями. И это уже пустяки... |
| Автор: Usya 21.7.2005, 14:57 | ||
Вот и еще однин с удалением из массива просмотренных записей
Вариантов достаточно много. Все зависит того, что тебе нужно дальше и сколько у тебя записей... |
| Автор: Alximik 21.7.2005, 15:34 |
| Сталкнулся с такой проблемой по таму методе как фаил должен читать все читает нормаьно а писать в фаил почемуто отказывается.... пользуюсь Деневером.... может както нужно chmod выставлять на *.txt ? если да то как это сделать на локальной машине и на Деневере в частности? |
| Автор: sharq 21.7.2005, 16:20 |
| Alximik на какой оси ты запускаешь скрипт? на Windows, тогда тебе права никакие не нужны. если на nix, то файлам нужно поставить права: 0666. если ты на Windows-платформе и не получается записать в файл, привели код и логи, если они есть. |
| Автор: Alximik 21.7.2005, 18:58 | ||||
| Запускаю под Виндой из формы передается вот в этот скрипт:
а вот это log ошибок
|
| Автор: wladk 22.7.2005, 10:21 |
| Здается мне, что у тебя как то по кривому перл встал. По кривому, в смысле отсутсуют некоторые необходимые переменные окружения. В данном случаее @INC , в смысле в ней лежит только текущий каталог. "." А путей, к установленным модулям нету. Уверен, что такиеже сообщения тебя ждут для каждого из подсоединяемых модулей. Так что разбирайся с установкой. |
| Автор: Sadok 22.7.2005, 10:30 | ||||||
Alximik
Чего-то я не понял, это лог Апача? Если да, то
говорит о том, что скрипт у тебя не выдает http-заголовки. Копать в сторону
|
| Автор: Alximik 22.7.2005, 10:47 |
| Лог выдаваемы программой Деневер кто незнает что это такое может ознаомиться вот тут http://www.denwer.ru/ как оказалось в даном пакете perl поставляется без стандартных библиотек этим думаю все и объясняется т.к. паралельно пользуюсь еще и AktivPerl он эту работу продеывает замечатеьно без косяков. Т.е. буду искать естьли на сайте разработчика стандартные perl библиотеки и модули. |
| Автор: sharq 22.7.2005, 11:27 |
| Alximik просто у тебя нет прагмы strict, об этом лог и пишет. Поэтому отключи ее и запусти снова скрипт. Поставь себе Apache+perl и проблем не будет. |
| Автор: Alximik 22.7.2005, 14:32 | ||||||
а что это за программа? можно ли ее както поставить? сечас поставил связку Small HTTP Server + perl начала ругаться вот на эту строчку
а еще возникла следующая проблема тоже как мне кажется довольно страная... есть вот этот скрипт
когда запускаю этот скрипт из командной строки он почемуто текст в *.txt файл недобовляет если же я запускаю его просто кликом мыши скрипт выполняется нормально в чем может быть дело? пользую все тоже ActivPerl. |
| Автор: Guest 22.7.2005, 22:57 | ||||||||||
http://httpd.apache.org/download.cgi Только определись с версией. Желательно ставить туже, что и на предпологаемом хостинге. есть разница междку ветками 2,х и1,3,х А перл
Путь настоящего самурая!:)
Не находит он этот модуль.... Может не входит в поставку.... вообщем попробуй его поставить... |
| Автор: Sadok 23.7.2005, 12:49 | ||
Alximik
Пути разные. |
| Автор: Alximik 23.7.2005, 21:16 | ||||||
после переустановки perla в купе с Апачем начала выдавать вот это:
собсевено вот код скрипта:
т.е. если я правельно считаю синтаксическая ошибка вот тут:
около "(:" как пишет сервак. что скажите? и кстати если я уберу use strict; какже мне тогда заставить скрипт принимать значения переменых $nick;;$post чтоб потом писать их в фаил? |
| Автор: Usya 24.7.2005, 07:22 | ||
Спасает от глупых ошибок. Немного подробнее здесь http://www.uic.vsu.ru/support/perlerror.htm Если уверен, что все будет Ok, можешь не использовать... |
| Автор: sharq 24.7.2005, 10:34 | ||||
Дорогой Alximik
ты путаешь с модулем CGI
найди отличие! Молодец, что поставил Apache и perl. |
| Автор: Alximik 30.7.2005, 23:20 | ||||||
возникла такая проблема из формы посыается все теже нещасные nick и post вот код формы (может ошибка в ней)
обробатывает этим данные файл my.pl который должен содержимое строк nick и post записать в текстовый файл
а он вместо этого почемуто пишет только : которое стоит между $nick и $post
как мне кажется косяк в форме может кто знаком с wml может помоч? или я неправ? |
| Автор: sharq 16.8.2005, 13:53 | ||
| Alximik косяк в руках Для того чтобы скрипт my.pl получил поля nick и post их необходимо передать в теге go! Читай документацию по wml и все станет на свои места.
К сожалению, проверить не могу, по логике - вроде бы правильно. Здесь используется два вида отправки данных обработчику. В скрипте my.pl можешь сделать проверку: если nick и post пустые, то не писать в gb.txt. |