Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Пример гостевой книги


Автор: Golden Hands 6.6.2005, 00:57
Вот, такой глупый вопросик. Может есть у кого?

Автор: Golden Hands 9.6.2005, 03:34
Код

<FORM method="post" ACTION="cgi-bin/save.pl">
<INPUT  size=50 name=name type="text">
<INPUT  size=50 name=adress type="text">
<INPUT  size=50 name=email type="text">
<INPUT  size=50 name=telefon type="text">
<INPUT class=input size=50 name=date type="text">
<INPUT  type=submit value="Отправить заявку" >
<INPUT  type="reset" value="Сбросить" ></td>
</form>


Код

#!/usr/bin/perl

sub read_get
{
 if ($ENV{REQUEST_METHOD} eq 'POST'){
  sysread(STDIN, $buffer, $ENV{CONTENT_LENGTH});
 } else{
  $buffer = "$ENV{'QUERY_STRING'}";
 }; 
 @pairs = split(/&/, $buffer);
 foreach $pair (@pairs) 
  {
   ($name, $value) = split(/=/, $pair);
   $name =~ tr/+/ /;
   $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $name =~ s/<!--(.|\n)*-->//g;
   $name =~ s/<([^>]|\n)*>//g;
   $value =~ tr/+/ /;
   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $value =~ s/<!--(.|\n)*-->//g;
   $value =~ s/\cM/ /g;
   $value =~ s/\|/ /g;
   $value =~ s/<([^>]|\n)*>//g;
   $value =~ s/"/&quot;/g;
   $value =~ s/\x00/ /g;
   $value =~ s/\.\./\./g;
   $value=~ s/\n/<br>/g;
   $FORM{$name} = $value;
  }

}

read_get();

open($file, ">>log.txt");
print $file $FORM{name};
print $file "\n";
print $file $FORM{adress};
print $file "\n";
print $file $FORM{email};
print $file "\n";
print $file $FORM{telefon};
print $file "\n";
print $file $FORM{date};
print $file "\n";

close($file); print "Content-type:text/html\n\n";


Не работает. Проверял на двух хостингах. Может быть здесь ошибка?

Автор: aleksnn 9.6.2005, 04:02
Это для первого поста
http://forum.vingrad.ru/index.php?showtopic=43044

Автор: korob2001 9.6.2005, 04:50
Golden Hands - smile где ты это взял??? Я же тебе выслал на мыло.

Автор: Golden Hands 9.6.2005, 10:57
korob2001, это другая версия smile
А с твоей такая же проблема.
Добавлено @ 10:58
И, кстати, в Блокноте редактировать файл *.pl нельзя?

Автор: korob2001 9.6.2005, 12:22
Цитата

И, кстати, в Блокноте редактировать файл *.pl нельзя?

Можно.
А что за ошибки в логе???

ЗЫ:
Заголовок укажи в начале, в конце от него толку мало.
Код

print "Content-type:text/html\n\n";


Автор: Golden Hands 9.6.2005, 23:30
korob2001, твой пример работает. Проблема была в хосте.

А как сделать просто лог с данными из HTML'овской формы, без заполнения формы в скрипте?

Автор: korob2001 10.6.2005, 22:34
Golden Hands - последний вопрос не понял, поясни подробнее.

Автор: Golden Hands 11.6.2005, 20:37
korob2001, нужно просто записать значения полей формы в файл.

Автор: korob2001 11.6.2005, 22:44
Так я же тебе уже выслал пример, которы просто записывает значения полей в файл. Или ты говоришь о втором варианте? Если о втором, то просто принимай параметры и затем открывай файл для добавления и добавляй в него те значения, которые получил из формы.

Файл открывай так:
Код

# Допустим следующие переменные нам нужно записать в файл
my $str1 = "Hello";
my $str2 = "world";
# Открываем файл для добавления
open( F, ">> test.txt" ) or die $!;

    # Добавляем строку в файл
    print F "$str1, $str2!\n";

# Закрываем файл
close( F );

Автор: Golden Hands 13.6.2005, 00:01
Попробую.

Автор: Golden Hands 13.6.2005, 23:41
korob2001, спасибо за содействие. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)