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


Автор: Гость_georg4 11.10.2003, 10:38
Вот такой скрипт:

#!/usr/bin/perl -w

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$input{$name} = $value;
}


$targetfile = "http://first.ru/names.html";
open (NAMEFILE, ">>$targetfile");

print NAMEFILE "<h3>Имя: ",$input{'user_name'},"</h3>\n" ; # тут оно выдает print() on closed filehandle NAMEFILE at Z:\home\first.ru\cgi\testform.pl line 20.
print NAMEFILE "<p><hr><p>\n" ; #тут тоже самое print() on closed filehandle NAMEFILE at Z:\home\first.ru\cgi\testform.pl line 21.
close (NAMEFILE);

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

print "<h3>Спасибо, что заполнили форму</h3>\nНажмите ";
print '<a href="http://first.ru/names.html">сюда</a>';
print ", чтобы увидеть Ваш ввод.\n";

Почемуconfused.gif?

Автор: Nobody 11.10.2003, 16:00
Потому что вот так:
Код
$targetfile = "http://first.ru/names.html";
open (NAMEFILE, ">>$targetfile");

не делают.

Автор: Unregistered 11.10.2003, 23:07
А как делаютconfused.gifconfused.gif?
Ты скажи а то умру темным!

Автор: NightGoblin 12.10.2003, 09:23
надо проверить, успешно ли был открыт файл:
Код
open (NAMEFILE, ">>$targetfile") || cgi_die ("Error: Could not open $targetfile for append: $!");


соответственно, cgi_die() определяется как-нибудь так:

Код
sub cgi_die {
   print ("Content-Type: text/html\n\n");
   print ("<html><title>Error</title></head>\n<body><h1>An error occured</h1><br>\n");
   foreach (@_) {
       print ("<h2>$_</h2><br>\n");
   }
   exit (0);
}

Автор: Nobody 12.10.2003, 18:16
Параметр команды open - локальный файл. А никак не URL.

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