0 && $uid == $uid2 && @fileowner('test') == $uid) { $chmod = 0700; } else { if ($gid > 0 && $gid == $gid2 && @filegroup('test') == $gid) { $chmod = 0770; } else { $chmod = 0777; } } // Appliquer de plus les droits d'acces du script if ($perms > 0) { $perms = ($perms & 0777) | (($perms & 0444) >> 2); $chmod |= $perms; } spip_unlink('test'); } $ok = is_dir($my_dir) && is_writable($my_dir); return $ok ? $chmod : false; } // // tester les droits en ecriture sur les repertoires // rajouter celui passe dans l'url ou celui du source (a l'installation) // // http://code.spip.net/@install_etape_chmod_dist function install_etape_chmod_dist() { $test_dir = _request('test_dir'); $chmod = 0; if ($test_dir and strpos($test_dir, '..') === false) { if (substr($test_dir, -1) !== '/') { $test_dir .= '/'; } if (!in_array($test_dir, $GLOBALS['test_dirs'])) { $GLOBALS['test_dirs'][] = _DIR_RACINE . $test_dir; } } else { if (!_FILE_CONNECT) { $GLOBALS['test_dirs'][] = _DIR_CONNECT; $GLOBALS['test_dirs'][] = _DIR_CHMOD; } } $bad_dirs = array(); $absent_dirs = array(); foreach ($GLOBALS['test_dirs'] as $i => $my_dir) { $test = test_ecrire($my_dir); if (!$test) { $m = preg_replace(',^' . _DIR_RACINE . ',', '', $my_dir); if (@file_exists($my_dir)) { $bad_dirs['
  • ' . $m . '
  • '] = 1; } else { $absent_dirs['
  • ' . $m . '
  • '] = 1; } } else { $chmod = max($chmod, $test); } } if ($bad_dirs or $absent_dirs) { if (!_FILE_CONNECT) { $titre = _T('dirs_preliminaire'); $continuer = ' ' . _T('dirs_commencer') . '.'; } else { $titre = _T('dirs_probleme_droits'); } $res = "
    " . menu_langues('var_lang_ecrire') . "
    \n"; if ($bad_dirs) { $res .= _T( 'dirs_repertoires_suivants', array('bad_dirs' => join("\n", array_keys($bad_dirs))) ) . '' . _T('login_recharger') . '.'; } if ($absent_dirs) { $res .= _T( 'dirs_repertoires_absents', array('bad_dirs' => join("\n", array_keys($absent_dirs))) ) . '' . _T('login_recharger') . '.'; } $res = '

    ' . $continuer . $res . aider('install0', true) . '

    '; $t = _T('login_recharger'); $t = (!$test_dir ? '' : "") . "" . "
    "; echo minipres($titre, $res . generer_form_ecrire('install', $t)); } else { $deja = (_FILE_CONNECT and analyse_fichier_connection(_FILE_CONNECT)); if (!$deja) { redirige_url_ecrire('install', 'etape=1&chmod=' . $chmod); } else { redirige_url_ecrire(); } } }