Forum Webscript.Ru

Программирование => Perl => Тема начата: alex007 от 21 Декабря 2002, 01:46:24

Название: Почему ошибка
Отправлено: alex007 от 21 Декабря 2002, 01:46:24
Есть форма:














Username:
Password:



Есть скрипт:
#!/usr/bin/perl
$pass = "password.dat";
use CGI qw(:param);  #- вместо этой хари там стоит вместе ( и :
$username=param("username");
$password=param("password");
open(LIST, $pass);
  @pass = ;
close(LIST);

foreach $line(@pass)
   {
   chomp($line);
   ($correctUsername,$correctPassword) = split(/\\|/,$line);
   if ($username eq $correctUsername) {
      if($password eq $correctPassword)
     {
     $cookie1 = $query->cookie(-name=>\'username\',-value=>\'$username\',-path=> \'/\',-expires=>\'+3h\');
$cookie2 = $query->cookie(-name=>\'password\',-value=>\'$password\',-path=> \'/\',-expires=>\'+3h\');
     print $query->header(-cookie=>[$cookie1,$cookie2]);
     print "Location: http://$ENV{\'HTTP_HOST\'}/$username/\\n\\n";
     }
      else
     {
     print "Location: http://$ENV{\'HTTP_HOST\'}/error.html\\n\\n";
     }
   }
}

Почему сервер не ставит куки и выдает ошибку Can\'t call method "cookie" on an undefined value at line 29 (это строка начинается с $cookie1)?

Жду ответов.
С Уважением,
Алекс
Название: Почему ошибка
Отправлено: YA от 21 Декабря 2002, 11:25:54
Потому что ты и не просил CGI экспртировать метод cookie. В таких случаях читай мануал по модулю или смотри %EXPORT_TAGS в используемом модуле.

use CGI qw(:cgi);