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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прием и запись в txt ваил 
:(
    Опции темы
Alximik
Дата 22.7.2005, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Лог выдаваемы программой Деневер кто незнает что это такое может ознаомиться вот тут http://www.denwer.ru/ как оказалось в даном пакете perl поставляется без стандартных библиотек этим думаю все и объясняется т.к. паралельно пользуюсь еще и AktivPerl он эту работу продеывает замечатеьно без косяков. Т.е. буду искать естьли на сайте разработчика стандартные perl библиотеки и модули.
PM MAIL   Вверх
sharq
Дата 22.7.2005, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

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



Alximik просто у тебя нет прагмы strict, об этом лог и пишет. Поэтому отключи ее и запусти снова скрипт.

Поставь себе Apache+perl и проблем не будет. smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
Alximik
Дата 22.7.2005, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(sharq @ 22.7.2005, 11:27)
Alximik просто у тебя нет прагмы strict, об этом лог и пишет. Поэтому отключи ее и запусти снова скрипт.

Поставь себе Apache+perl и проблем не будет. smile

а что это за программа? можно ли ее както поставить? сечас поставил связку Small HTTP Server + perl начала ругаться вот на эту строчку
Код

use CGI (:standard); 


а еще возникла следующая проблема тоже как мне кажется довольно страная...

есть вот этот скрипт
Код

#!/usr/bin/perl
$i = "тест прошол удачно!";
open (FH, ">>test.txt") || die "error test.txt $!\n";
print FH "$i\n";
close (FH);


когда запускаю этот скрипт из командной строки он почемуто текст в *.txt файл недобовляет если же я запускаю его просто кликом мыши скрипт выполняется нормально в чем может быть дело? пользую все тоже ActivPerl.
PM MAIL   Вверх
Guest
Дата 22.7.2005, 22:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Alximik @ 22.7.2005, 14:32)
Цитата(sharq @ 22.7.2005, )
Alximik просто у тебя нет прагмы strict, об этом лог и пишет. Поэтому отключи ее и запусти снова скрипт.

Поставь себе Apache+perl и проблем не будет. smile

а что это за программа? можно ли ее както поставить?


http://httpd.apache.org/download.cgi

Только определись с версией. Желательно ставить туже, что и на предпологаемом хостинге. есть разница междку ветками 2,х и1,3,х
А перлsmile)) На верху страницы, буквально, есть такой раздел Правила раздела Perl: CGI программирование последний пунктsmile

Цитата

сечас поставил связку Small HTTP Server + perl


Путь настоящего самурая!:)

Цитата

начала ругаться вот на эту строчку
Код

use CGI (:standard); 



Не находит он этот модуль.... Может не входит в поставку.... вообщем попробуй его поставить...

  Вверх
Sadok
Дата 23.7.2005, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Alximik
Цитата
в чем может быть дело?

Пути разные.
PM   Вверх
Alximik
Дата 23.7.2005, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



после переустановки perla в купе с Апачем начала выдавать вот это:
Код

syntax error at J:\shttps\www\cgi-bin\gb\my.pl line 3, near "(:" Execution of J:\shttps\www\cgi-bin\gb\my.pl aborted due to compilation errors.


собсевено вот код скрипта:
Код

#!/usr/bin/perl
use strict;
use CGI (:standard);
use Fcntl qw(:flock)
my $nick = param('nick');
my $post = param('post');

open FILE, ">> gb.txt" or die "Can't open file: $!\n";
flock FILE, LOCK_SH;
print FILE "$nick;;$post\n";
flock FILE, LOCK_UN;
close FILE;


т.е. если я правельно считаю синтаксическая ошибка вот тут:
Код

use CGI (:standard);


около "(:" как пишет сервак. что скажите? и кстати если я уберу use strict; какже мне тогда заставить скрипт принимать значения переменых $nick;;$post чтоб потом писать их в фаил?
PM MAIL   Вверх
Usya
Дата 24.7.2005, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата
strict
Режим ограниченного использования "опасных" операторов


Спасает от глупых ошибок.
Немного подробнее здесь http://www.uic.vsu.ru/support/perlerror.htm
Если уверен, что все будет Ok, можешь не использовать...
--------------------
Я не волшебник, я только учусь...
PM MAIL   Вверх
sharq
Дата 24.7.2005, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

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



Дорогой Alximik
Цитата(Alximik @ 23.7.2005, 21:16)
кстати если я уберу use strict; какже мне тогда заставить скрипт принимать значения переменых $nick;;$post чтоб потом писать их в фаил?

ты путаешь с модулем CGI smile

Код
use strict;
use CGI qw(:standard);
use Fcntl qw(:flock);

my $nick = param('nick');
my $post = param('post');

open FILE, ">> gb.txt" or die "Can't open file: $!\n";
flock FILE, LOCK_EX;
print FILE "$nick;;$post\n";
flock FILE, LOCK_UN;
close FILE;


найди отличие! smile

smile Читай документацию по модулю CGI smile

Молодец, что поставил Apache и perl.

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
Alximik
Дата 30.7.2005, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



возникла такая проблема из формы посыается все теже нещасные nick и post вот код формы (может ошибка в ней)

Код

#!/usr/bin/perl

use CGI qw(:standard);
print "Content-type:text/vnd.wap.wml\n\n";
require "head.pl";
print "<p align=\"center\">";

        print "Nick:<br/><input name=\"nick\" maxlength=\"20\" title=\"nick\" type=\"text\"/><br/>\n";
    print "Post:<br/><input name=\"post\" maxlength=\"200\" title=\"post\" type=\"text\"/><br/>\n";
    print "<anchor title=\"go\">Enter<go href=\"my.pl\" method=\"post\">";

        print "</go></anchor>\n";

print "</p>\n";
require "end.pl";



обробатывает этим данные файл my.pl который должен содержимое строк nick и post записать в текстовый файл
Код

#!/usr/bin/perl

use strict;
use CGI qw(:standard);
use Fcntl qw(:flock);
my $nick = param('nick');
my $post = param('post');
open FILE, ">> gb.txt" or die "Can't open file: $!\n";
flock FILE, LOCK_EX;
print FILE "$nick : $post\n";
flock FILE, LOCK_UN;
close FILE;


а он вместо этого почемуто пишет только : которое стоит между $nick и $post
Код

print FILE "$nick : $post\n";


как мне кажется косяк в форме может кто знаком с wml может помоч? или я неправ?
PM MAIL   Вверх
sharq
Дата 16.8.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

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



Alximik косяк в руках smile

Для того чтобы скрипт my.pl получил поля nick и post их необходимо передать в теге go!
Читай документацию по wml и все станет на свои места.

Код
#!/usr/bin/perl
use strict;
use CGI qw(:standard);

print "Content-type:text/vnd.wap.wml\n\n";

require "head.pl";

print <<WML;
<p align="center">
Nick:<br/><input name="nick" maxlength="20" title="nick" type="text"/><br/>
Post:<br/><input name="post" maxlength="200" title="post" type="text"/><br/>
<anchor>Enter
<go href="my.pl" method="post">
<postfield name="nick" value="\$(nick)"/>
<postfield name="post" value="\$(post)"/>
</go>
</anchor>
<br/>
<do label="Enter" type="accept">
<go href="my.pl" method="post">
<postfield name="nick" value="\$(nick)"/>
<postfield name="post" value="\$(post)"/>
</go>
</do>
</p>
WML

require "end.pl";


К сожалению, проверить не могу, по логике - вроде бы правильно.
Здесь используется два вида отправки данных обработчику.

В скрипте my.pl можешь сделать проверку: если nick и post пустые, то не писать в gb.txt.

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


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

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


 




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


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

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