Subversion Repositories Sites.tela-botanica.org

Compare Revisions

Ignore whitespace Rev 607 → Rev 608

/tags/v4.0/actu/spip_test_dirs.php3
New file
0,0 → 1,117
<?php
 
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2005 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
 
if (defined("_TEST_DIRS")) return;
define("_TEST_DIRS", "1");
 
include("ecrire/inc_version.php3");
 
include_ecrire("inc_presentation.php3");
 
utiliser_langue_visiteur();
 
 
//
// Tente d'ecrire
//
function test_ecrire($my_dir) {
$ok = true;
$nom_fich = "$my_dir/test.txt";
$f = @fopen($nom_fich, "w");
if (!$f) $ok = false;
else if (!@fclose($f)) $ok = false;
else if (!@unlink($nom_fich)) $ok = false;
return $ok;
}
 
//
// teste les droits sur les repertoires $test_dirs declares dans inc_version
//
 
// rajouter celui passer dans l'url ou celui du source (a l'installation)
 
if ($test_dir) {
if (!ereg("/$", $test_dir)) $test_dir .= '/';
if (!in_array($test_dir, $test_dirs)) $test_dirs[] = $test_dir;
}
else {
if (!_FILE_CONNECT)
$test_dirs[] = dirname(_FILE_CONNECT_INS);
}
 
unset($bad_dirs);
unset($absent_dirs);
 
while (list(, $my_dir) = each($test_dirs)) {
if (!test_ecrire($my_dir)) {
@umask(0);
if (@file_exists($my_dir)) {
@chmod($my_dir, 0777);
// ???
if (!test_ecrire($my_dir))
@chmod($my_dir, 0775);
if (!test_ecrire($my_dir))
@chmod($my_dir, 0755);
if (!test_ecrire($my_dir))
$bad_dirs[] = "<LI>".$my_dir;
} else
$absent_dirs[] = "<LI>".$my_dir;
}
}
 
if ($bad_dirs OR $absent_dirs) {
install_debut_html();
 
if (!_FILE_CONNECT) {
$titre = _T('dirs_preliminaire');
$continuer = ' '._T('dirs_commencer');
} else
$titre = _T('dirs_probleme_droits');
 
$bad_url = "spip_test_dirs.php3";
if ($test_dir) $bad_url .= '?test_dir='.$test_dir;
 
echo "<FONT FACE=\"Verdana,Arial,Helvetica,sans-serif\" SIZE=3>$titre</FONT>\n<p>";
echo "<div align='right'>". menu_langues('var_lang_ecrire')."</div>\n";
 
if ($bad_dirs) {
echo "<p>";
echo _T('dirs_repertoires_suivants',
array('bad_dirs' => join(" ", $bad_dirs)));
echo "<B>". _T('login_recharger')."</b>";
}
 
if ($absent_dirs) {
echo "<p>";
echo _T('dirs_repertoires_absents',
array('bad_dirs' => join(" ", $absent_dirs)));
echo "<B>". _T('login_recharger')."</b>";
}
 
echo $continuer.'. ';
echo aide ("install0");
echo "<p>";
 
echo "<FORM ACTION='$bad_urls' METHOD='GET'>\n";
echo "<DIV align='right'><INPUT TYPE='submit' CLASS='fondl' VALUE='". _T('login_recharger')."'></DIV>";
echo "</FORM>";
 
install_fin_html();
 
} else {
if (!_FILE_CONNECT)
header("Location: " . _DIR_RESTREINT_ABS . "install.php3?etape=1");
else
header("Location: " . _DIR_RESTREINT_ABS);
}
 
?>