From 17be4f79c6b52e1574e850f3544bad8121fcc892 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Fri, 12 Apr 2002 09:27:35 +0000 Subject: [PATCH] gestion des erreurs dues aux droits d'ecriture : seule l'interdiction d'ecrire dans le CACHE est redhibitoire ; les autres erreurs n'envoient dans spip_test_dirs qu'a partir de l'esapce prive, et uniquement en cas de besoin (upload image) ou de risque securite (ecrire/data). S'il y a un pb dans ecrire/ (inc_meta_cache), l'admin est averti en rouge, sans que ca soit bloquant. details supplementaires : distinction phase d'install/ phase de reparation --- spip_test_dirs.php3 | 83 ++++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 39 deletions(-) diff --git a/spip_test_dirs.php3 b/spip_test_dirs.php3 index def64233b9..44bbc89e9c 100644 --- a/spip_test_dirs.php3 +++ b/spip_test_dirs.php3 @@ -4,54 +4,59 @@ include("ecrire/inc_version.php3"); include_ecrire("inc_presentation.php3"); -function bad_dirs($bad_dirs) { - echo " -<BR><FONT FACE=\"Verdana,Arial,Helvetica,sans-serif\" SIZE=3>Préliminaire : <B>Régler les droits d'accès</B></FONT> - -<P><B>Les répertoires suivants ne sont pas accessibles en écriture : <ul>$bad_dirs.</ul> </B> - -<P>Pour y remédier, utilisez votre client FTP afin de régler les droits d'accès de chacun -de ces répertoires. La procédure est expliquée en détail dans le guide d'installation. - -<P>Une fois cette manipulation effectuée, vous pourrez <B><A HREF='spip_test_dirs.php3'>recharger -cette page</A> afin de commencer réellement l'installation."; - +function bad_dirs($bad_dirs, $test_dir, $install) { + if ($install) { + $titre = "Préliminaire : <B>Régler les droits d'accès</B>"; + $continuer = " afin de commencer réellement l'installation"; + } else + $titre = "<b>Problème de droits d'accès</b>"; + + echo "<BR><FONT FACE=\"Verdana,Arial,Helvetica,sans-serif\" SIZE=3>$titre</FONT> + <P><B>Les répertoires suivants ne sont pas accessibles en écriture : <ul>$bad_dirs.</ul> </B> + <P>Pour y remédier, utilisez votre client FTP afin de régler les droits d'accès de chacun + de ces répertoires. La procédure est expliquée en détail dans le guide d'installation. + <P>Une fois cette manipulation effectuée, vous pourrez <B><A HREF='spip_test_dirs.php3"; + if ($test_dir) echo '?test_dir='.$test_dir; + echo "'>recharger cette page</A>$continuer."; } // // teste les droits sur les repertoires // -if (!file_exists("inc_connect.php3")){ - if ($test_dir) - $test_dirs[] = $test_dir; - else - $test_dirs = array("CACHE", "IMG", "ecrire", "ecrire/data", "ecrire/upload"); +$install = !file_exists("ecrire/inc_connect.php3"); +if ($test_dir) + $test_dirs[] = $test_dir; +else + $test_dirs = array("CACHE", "IMG", "ecrire", "ecrire/data", "ecrire/upload"); unset($bad_dirs); - while (list(, $my_dir) = each($test_dirs)) { - $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; - - if (!$ok) $bad_dirs[] = "<LI>".$my_dir; - } - if ($bad_dirs) { - - $bad_dirs = join(" ", $bad_dirs); - - install_debut_html(); - bad_dirs($bad_dirs); - + +while (list(, $my_dir) = each($test_dirs)) { + $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; + + if (!$ok) $bad_dirs[] = "<LI>".$my_dir; +} + +if ($bad_dirs) { + $bad_dirs = join(" ", $bad_dirs); + install_debut_html(); + bad_dirs($bad_dirs, $test_dir, $install); + + if ($install) echo aide ("install0"); - - install_fin_html(); - exit; - } - header("Location: ./ecrire/install.php3?etape1=oui"); + + install_fin_html(); +} else { + if ($install) + header("Location: ./ecrire/install.php3?etape1=oui"); + else + header("Location: ./ecrire/"); } ?> -- GitLab