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:
$self->{Directory} ||= File::Spec->tmpdir();
und File::Spec tempir dann das:
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)