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'); } // Verifier que les valeurs sont correctes $f = @fopen($my_dir.'test.php', 'w'); if ($f) { @fputs($f, '<'.'?php $ok = true; ?'.'>'); @fclose($f); @chmod($my_dir.'test.php', $chmod); include($my_dir.'test.php'); } spip_unlink($my_dir.'test.php'); 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://doc.spip.org/@install_etape_chmod_dist function install_etape_chmod_dist() { global $test_dirs; $test_dir = _request('test_dir'); $chmod = 0; if ($test_dir) { if (substr($test_dir,-1)!=='/') $test_dir .= '/'; if (!in_array($test_dir, $test_dirs)) $test_dirs[] = _DIR_RACINE . $test_dir; } else { if (!_FILE_CONNECT) { $test_dirs[] = _DIR_CONNECT; $test_dirs[] = _DIR_CHMOD; } } $bad_dirs = array(); $absent_dirs = array();; while (list(, $my_dir) = each($test_dirs)) { $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 . aide ("install0") . "

    "; $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(); } } ?>