Forum Webscript.Ru

Программирование => Perl => Тема начата: Error202 от 16 Сентября 2005, 12:35:12

Название: Сессии и куки
Отправлено: Error202 от 16 Сентября 2005, 12:35:12
Почему не создаются куки?

#!/usr/bin/perl
use CGI qw(:all);
use GD;
use DBI;
use CGI::Session;
require \'config.pl\';
############################# Подключение базы данных
$dsn=\'DBI:mysql:\'.$mysqlbase.\':\'.$mysqlhost;
$dbh=DBI->connect($dsn,$mysqlname,$mysqlpassword);
#############################
$num=int(rand(999999));
# create a new image
$im = new GD::Image(90,20);
("$MainPath/images/fon2.png");
$im = newFromPng GD::Image("/pub/home/rweb64/htdocs/images/fon2.png");
$im->interlaced(\'true\');
$white = $im->colorAllocate(255,255,255);
$im->string(gdGiantFont,15,3,"$num",$white);

$cgi = new CGI;
$sid = $cgi->cookie("CGISESSID") || undef;
$session  = new CGI::Session("driver:MySQL", $sid, {Handle=>$dbh});
$session->expires("+1y");
$session->param(\'num\', $num);

 $cook=cookie( -name    => \'CGISESSID\',
               -expires => \'+4M\');
$session->close();
############################# Отключение базы
$dbh->disconnect();
#############################
print header(\'image/png\', cookie=>$cook);
print $im->png;
Название: Сессии и куки
Отправлено: Error202 от 16 Сентября 2005, 12:56:55
Был приступ паники... Исправил, спасибо...
Название: Сессии и куки
Отправлено: Ivan Kolesnikov от 16 Сентября 2005, 13:00:43

$cook=cookie( -name    => \'CGISESSID\',
               -expires => \'+4M\');

А разве значение куки не нужно передавать?

$cook=cookie( -name    => \'CGISESSID\',
               -expires => \'+4M\',
               -value => $sid);