Fix: La fonction create_exdir fonctionne sans warning meme en mode open_basedir actif

This commit is contained in:
Laurent Destailleur 2006-09-06 21:19:01 +00:00
parent 4e629a581a
commit 89a9f29fa3

View File

@ -1942,8 +1942,10 @@ function get_exdir($num,$level=3)
*/
function create_exdir($dir)
{
dolibarr_syslog("functions.inc.php::create_exdir dir=$dir");
dolibarr_syslog("functions.inc.php::create_exdir: dir=$dir");
if (@is_dir($dir)) return 0;
$nberr=0;
$nbcreated=0;
@ -1959,20 +1961,20 @@ function create_exdir($dir)
// (ex selon config de open_basedir)
if ($ccdir)
{
if (! is_dir($ccdir))
if (! @is_dir($ccdir))
{
dolibarr_syslog("functions.inc.php::create_exdir Directory '$ccdir' does not exists or is outside open_basedir PHP setting.");
dolibarr_syslog("functions.inc.php::create_exdir: Directory '$ccdir' does not exists or is outside open_basedir PHP setting.");
umask(0);
if (! @mkdir($ccdir, 0755))
{
// Si le is_dir a renvoyé une fausse info, alors on passe ici.
dolibarr_syslog("functions.inc.php::create_exdir Error: Fails to create directory '$ccdir'.");
dolibarr_syslog("functions.inc.php::create_exdir: Fails to create directory '$ccdir' or directory already exists.");
$nberr++;
}
else
{
dolibarr_syslog("functions.inc.php::create_exdir Directory '$ccdir' created");
dolibarr_syslog("functions.inc.php::create_exdir: Directory '$ccdir' created");
$nberr=0; // On remet à zéro car si on arrive ici, cela veut dire que les échecs précédents peuvent etre ignorés
$nbcreated++;
}