Forum Webscript.Ru
Программирование => Perl => Тема начата: alex007 от 21 Декабря 2002, 01:46:24
-
Есть форма:
Есть скрипт:
#!/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)?
Жду ответов.
С Уважением,
Алекс
-
Потому что ты и не просил CGI экспртировать метод cookie. В таких случаях читай мануал по модулю или смотри %EXPORT_TAGS в используемом модуле.
use CGI qw(:cgi);