/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Cookies & mason
Fra : Frederik K.H.


Dato : 28-08-01 12:41

Hejsa,
Jeg har et lille problem med at sætte cookies i mason. Det er ikke helt
nemt at finde info om hvordan man gør, men på masonhq.com anbefaler de at
man bruger Apache::Cookie eller CGI::Cookie. Jeg har så valgt at bruge den
sidste, og i mit mason-template bruger jeg følgende kode for at få den lavet
og afsendt:

%my $c = new CGI::Cookie(-name => 'si', -value =>
'$cookie_id', -path=>'/');
%$r->header_out('Set-Cookie',$c);

Denne cookie bliver dog aldrig sendt ud, jeg har checket både ved at lade IE
spørge om cookies og en telnet til port 80 og GET, så man kan se præcist
hvad der ryger tilbage.

Nogen der kan hjælpe med det problem?

Frederik



 
 
Frederik K.H. (28-08-2001)
Kommentar
Fra : Frederik K.H.


Dato : 28-08-01 12:44

"Frederik K.H." <nej@tak.dk> skrev i en meddelelse
news:IqLi7.53$z06.7024@news.get2net.dk...
> Hejsa,
> Jeg har et lille problem med at sætte cookies i mason. Det er ikke helt
> nemt at finde info om hvordan man gør, men på masonhq.com anbefaler de at
> man bruger Apache::Cookie eller CGI::Cookie. Jeg har så valgt at bruge
den
> sidste, og i mit mason-template bruger jeg følgende kode for at få den
lavet
> og afsendt:
>
> %my $c = new CGI::Cookie(-name => 'si', -value =>
> '$cookie_id', -path=>'/');
> %$r->header_out('Set-Cookie',$c);
>
> Denne cookie bliver dog aldrig sendt ud, jeg har checket både ved at lade
IE
> spørge om cookies og en telnet til port 80 og GET, så man kan se præcist
> hvad der ryger tilbage.
>
> Nogen der kan hjælpe med det problem?
>
> Frederik
>
>

Det kører i øvrigt på en Apache-baseret oracle http-server under solaris.
Er der noget specielt i Apache, der skal sættes op før den vil servere
cookies?

Frederik



Nezar Nielsen (28-08-2001)
Kommentar
Fra : Nezar Nielsen


Dato : 28-08-01 16:31

"Frederik K.H." <nej@tak.dk> skrev i en meddelelse
news:IqLi7.53$z06.7024@news.get2net.dk...
>
> %my $c = new CGI::Cookie(-name => 'si', -value =>
> '$cookie_id', -path=>'/');
> %$r->header_out('Set-Cookie',$c);
^^^ <-- ser i mine øjne forkert ud, har du sørget for at use strict og -w
?

Jeg har aldrig haft med Mason at gøre, men kan forestille mig at det måske
skal se sådan ud:

$r->header_out('Set-Cookie',$c);


Ellers kunne det evt. (nu siger du godt nok at du har prøvet med GET via
telnet) have noget at gøre med følgende (fra deres FAQ):

One thing to avoid: the combination of CGI::Cookie, Apache::Request, and
POST requests has caused people problems. It seems that Apache::Cookie and
Apache::Request make a better pair.


--
Mvh. Nezar Nielsen
http://fez.dk/




Michael Legart - Tis~ (28-08-2001)
Kommentar
Fra : Michael Legart - Tis~


Dato : 28-08-01 19:26

Nezar Nielsen <tumpen@fez.dk> wrote:
>>
>> %my $c = new CGI::Cookie(-name => 'si', -value =>
>> '$cookie_id', -path=>'/');
>> %$r->header_out('Set-Cookie',$c);
> ^^^ <-- ser i mine øjne forkert ud, har du sørget for at use strict og -w
> ?

> Jeg har aldrig haft med Mason at gøre, men kan forestille mig at det måske
> skal se sådan ud:

I Mason betyder % i starten af en linie at den linie indeholder perlkode.

Dog bør du nok bare smide cookietingene ned i <%init%> afsnittet
i stedet. Og skal man ikke kører $c->bake(); inden man sender den?

Michael

Ask Bjoern Hansen (29-08-2001)
Kommentar
Fra : Ask Bjoern Hansen


Dato : 29-08-01 04:54

"Frederik K.H." <nej@tak.dk> writes:

> Nogen der kan hjælpe med det problem?

Naeh, men proev noget i stil med det foelgende og fortael om det
virker eller ej,

% unless ($cookies) {
You don't have any cookies.
% }
% else {

You have the following cookies set,<br>
<table>

<% join "<br>",
map { "<tr><td>$_</td><td>"
.$cookies->{$_}->value
."</td></tr>" }
sort keys %{$cookies}
%>

</table>

% }

<%init>
use Apache::Cookie;
my $c = new Apache::Cookie
($r,
-name => 'TestCookie',
-value => 'bar',
-expires => '+1H',
-domain => '.perl.org',
);

$c->bake;
my $cookies = Apache::Cookie->new($r)->parse;

</%init>



- ask


--
ask bjoern hansen, http://ask.netcetera.dk/ !try; do();

Ask Bjoern Hansen (29-08-2001)
Kommentar
Fra : Ask Bjoern Hansen


Dato : 29-08-01 05:01

"Frederik K.H." <nej@tak.dk> writes:

> Nogen der kan hjælpe med det problem?

Naeh, men proev noget i stil med det foelgende og fortael om det
virker eller ej,

http://onion.perl.org/cookies

% unless ($cookies) {
You don't have any cookies.
% }
% else {

You have the following cookies set,<br>
<table>

<% join "<br>",
map { "<tr><td>$_</td><td>"
.$cookies->{$_}->value
."</td></tr>" }
sort keys %{$cookies}
%>

</table>

% }

<%init>
use Apache::Cookie;
my $c = new Apache::Cookie
($r,
-name => 'TestCookie',
-value => 'bar',
-expires => '+1H',
-domain => '.perl.org',
);

$c->bake;
my $cookies = Apache::Cookie->new($r)->parse;

</%init>


- ask


--
ask bjoern hansen, http://ask.netcetera.dk/ !try; do();

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408917
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste