Thread CGI::Session - erstellt Sessions nicht im temporären Verzeichnis
(5 answers)
Opened by GwenDragon at 2012-03-24 10:50
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) |