Thread CGI::Session - erstellt Sessions nicht im temporären Verzeichnis (5 answers)
Opened by GwenDragon at 2012-03-24 10:50

GwenDragon
 2012-03-24 14:21
#157014 #157014
User since
2005-01-17
14774 Artikel
Admin1
[Homepage]
user image
Aus irgendeinem Grund vererbt der Webserver $ENV{TEMP} nicht an das CGI.

//EDIT: Argggh, jeder Webserver udn gar jeder CGI-Starter wie suexec o. ä. macht es anders mit der Duchlässigkeit bei Umgebungsvariablen. Und manche Admins lassen $ENV{TEMP} oder $ENV{TMP} zu, andere wieder nicht.
Wundervoll wenn sich dann Sessions von CGI::Session dann in \ des Laufwerks des Skriptes häufen und für jeden einsehbar sind.

Was ich nicht verstehe, warum Mark überhaupt unter Windows folgendes macht:
Code (perl): (dl )
$self->{Directory} ||= File::Spec->tmpdir();

und File::Spec tempir dann das:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
sub tmpdir {
    return $tmpdir if defined $tmpdir;
    $tmpdir = $_[0]->_tmpdir( map( $ENV{$_}, qw(TMPDIR TEMP TMP) ),
                  'SYS:/temp',
                  'C:\system\temp',
                  'C:/temp',
                  '/tmp',
                  '/'  );
}

Sowas schlägt dann doch als CGI oft fehl, dass das temporäre Verzeichnis erraten werden kann, wenn die Umgebungsvariablen fehlen.
Kein Wunder, dass alles in \ landet. :(
Last edited: 2012-03-24 14:37:09 +0100 (CET)

View full thread CGI::Session - erstellt Sessions nicht im temporären Verzeichnis