|
| 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();
| |
|
|