Автор Тема: Почему ошибка  (Прочитано 1978 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alex007

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 835
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.russians-in-london.co.uk/
Почему ошибка
« : 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)?

Жду ответов.
С Уважением,
Алекс
Русские-в-Лондоне. Как они там? Интересно. Инфо (FAQ), Форум и Магазин

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Почему ошибка
« Ответ #1 : 21 Декабря 2002, 11:25:54 »
Потому что ты и не просил CGI экспртировать метод cookie. В таких случаях читай мануал по модулю или смотри %EXPORT_TAGS в используемом модуле.

use CGI qw(:cgi);
Литературный перевод с русского и английского на Perl. Дорого!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28