CGI User wrote:
My question are:
1. Why it didn't work in the first case.
2. If the first case won't work, then how I can set all the cookie parameters
e.g. domain, path, expires, secure using the second case.
3. How I can retrieve my cookie from the browser is the recommended first case to set cookie is not working, and the second case is working but I cannot see any method to retrieve my own cookie?


CGI::Cookie and CGI->cookie (sorry :) have the same interface, and they should produce the same results:

use strict;
use warnings;

use Test::More tests => 1;

$ENV{CGI_APP_RETURN_ONLY} = 1;

my $m = My::App->new;
$m->start_mode('q_cookie');
my $q_out = $m->run;
diag $q_out;

$m = My::App->new;
$m->start_mode('cgi_cookie');
my $cgi_out = $m->run;
diag $cgi_out;

is $q_out, $cgi_out, "headers are identical";


package My::App;

use base qw/CGI::Application/;

sub setup {
    my $self = shift;
    $self->run_modes( [ qw/ cgi_cookie q_cookie / ] );
}

sub q_cookie {
    my $self = shift;
    my $q    = $self->query;
    my $cookie = $q->cookie(
            -name       => 'some_name',
            -value      => '12345',
            -domain     => '.come_domain.com',
            -path       => '/',
            -expires    => '+1h',
            -secure     => 1,
            );

    $self->header_add(-cookie => [$cookie]);

    return '';
}

sub cgi_cookie {
    my $self = shift;
    my $cookie = CGI::Cookie->new(
            -name       => 'some_name',
            -value      => '12345',
            -domain     => '.come_domain.com',
            -path       => '/',
            -expires    => '+1h',
            -secure     => 1,
            );

    $self->header_add(-cookie => [$cookie]);
    return '';
}

__END__
1..1
# Set-Cookie: some_name=12345; domain=.come_domain.com; path=/; expires=Wed, 21-May-2008 22:51:04 GMT; secure
# Date: Wed, 21 May 2008 21:51:03 GMT
# Content-Type: text/html; charset=ISO-8859-1
#
# Set-Cookie: some_name=12345; domain=.come_domain.com; path=/; expires=Wed, 21-May-2008 22:51:04 GMT; secure
# Date: Wed, 21 May 2008 21:51:03 GMT
# Content-Type: text/html; charset=ISO-8859-1
#
ok 1 - headers are identical


#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################

Reply via email to