Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]467[/thread]

cgi::session problem



<< >> 5 Einträge, 1 Seite
tina
 2005-03-24 15:17
#4672 #4672
User since
2005-01-10
5 Artikel
BenutzerIn
[default_avatar]
hallo,

habe folgendes Test Skript:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl
use CGI;
use CGI::Session;
my $cgi = new CGI;
my $sid = $cgi->param('p');

if (defined $sid) {
my $session = $session = new CGI::Session("driver:File", $sid, {Directory=>"/tmp"});
$sid = $session->id();
print "Content-Type: text/html\n\n";
print "<HTML><BODY><H1>$sid</H1></BODY></HTML>";
print "in if";
}
else {
my $session = $session = new CGI::Session("driver:File", undef, {Directory=>"/tmp"});
$sid = $session->id();
print "Content-Type: text/html\n\n";
print "<HTML><BODY><H1>$sid</H1></BODY></HTML>";
print "in else";
}

Beim Aufruf mit aktueller ID wird trotzdem einen neue erzeugt.
Diese Problem habe ich auch schon bei anderen gefunden, aber leider ohnen Lösung.

1)
http://localhost/cgi-bin/session.pl
=>e74a632c6d85000db1fb1453e27d6978
2)
http://localhost/cgi-bin/session.pl?p=e74a632c6d85000db1fb1453e27d6978
=>d4d649c623dce8284b914e26269c58de

???

thx
tina
ptk
 2005-03-24 15:33
#4673 #4673
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Hier geht es (von der Kommandozeile). Werden ueberhaupt Session-Dateien in /tmp abgelegt (cgisess_<sessionid>).
tina
 2005-03-24 17:19
#4674 #4674
User since
2005-01-10
5 Artikel
BenutzerIn
[default_avatar]
Der Fehler steckte in der Verzeichnissangabe.

Für win:
my $session = $session = new CGI::Session("driver:File", undef, {Directory=>'C:\tmp\sessions'});

Für *nix/linux:
$session = new CGI::Session(undef, undef, {Directory=>'../tmp/sessions'});

Die Pfade müssen existieren!

g
tina
ptk
 2005-03-24 19:45
#4675 #4675
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Um kompatibel zu bleiben, koennte man wahrscheinlich auch
Code: (dl )
1
2
use File::Spec;
$tempdir = File::Spec->catdir(File::Spec->tmpdir, "sessions");

schreiben.
Strat
 2005-03-25 12:39
#4676 #4676
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
nebenbei: wenn du eh schoen mit lokalen variablen arbeitest, moechte ich dir
Code: (dl )
1
2
use strict;
use warnings;

ans herz legen... das haette dir z.B. den fehler mit
Code: (dl )
my $session = $session = ...

gezeigt...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 5 Einträge, 1 Seite



View all threads created 2005-03-24 15:17.