diff --git a/ecrire/admin_repair.php3 b/ecrire/admin_repair.php3 index 31abd3ad9f604f82cfa1b0bbdd14c0d320f12c8e..6e6b5935f6923ab773c55417cff97a5fa761be8c 100644 --- a/ecrire/admin_repair.php3 +++ b/ecrire/admin_repair.php3 @@ -10,17 +10,5 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ -/* - * REMARQUE IMPORTANTE : SECURITE - * Ce systeme de reparation doit pouvoir fonctionner meme si - * la table spip_auteurs est en panne : on n'appelle donc pas - * inc_auth ; seule l'authentification ftp est exigee - * - */ - -include ("inc_version.php3"); -$GLOBALS['connect_statut'] = '0minirezo'; -$var_f = include_fonction($SCRIPT_NAME); -$var_f(); - +include ("inc.php3"); ?> diff --git a/ecrire/inc.php3 b/ecrire/inc.php3 index d258bbe1fd3b31e7ab97e1460e449fedd4f0609b..d37084d8601da68be6c3b2a858126d3bbfae8c7d 100644 --- a/ecrire/inc.php3 +++ b/ecrire/inc.php3 @@ -12,11 +12,14 @@ if (!defined('_ECRIRE_INC_VERSION')) include ("inc_version.php3"); -include_ecrire ("inc_session"); -include_ecrire('inc_cookie'); - -$var_f = include_fonction('auth'); -if (!$var_f()) exit; +if (autoriser_sans_cookie($SCRIPT_NAME)) + unset($GLOBALS['_COOKIE']); +else { + include_ecrire ("inc_session"); + include_ecrire('inc_cookie'); + $var_f = include_fonction('auth'); + if (!$var_f()) exit; + } // // Preferences de presentation diff --git a/ecrire/inc_admin_repair.php b/ecrire/inc_admin_repair.php index 98cf428e81301f439c3258d7d22c706c8f6231a2..a53081ab71716dfeefb8967729c0870264c46285 100644 --- a/ecrire/inc_admin_repair.php +++ b/ecrire/inc_admin_repair.php @@ -12,6 +12,16 @@ if (!defined("_ECRIRE_INC_VERSION")) return; +/* + * REMARQUE IMPORTANTE : SECURITE + * Ce systeme de reparation doit pouvoir fonctionner meme si + * la table spip_auteurs est en panne : on n'appelle donc pas + * inc_auth ; seule l'authentification ftp est exigee + * + */ + +$GLOBALS['connect_statut'] = '0minirezo'; + include_ecrire ("inc_admin"); include_ecrire ("inc_texte"); include_ecrire ("inc_minipres"); diff --git a/ecrire/inc_install.php b/ecrire/inc_install.php index baabbc6149c2acd631983c55a396b2a359399e0d..41981bfcdb9aa7429095d75fe3729ec615e8b990 100644 --- a/ecrire/inc_install.php +++ b/ecrire/inc_install.php @@ -14,6 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire ("inc_minipres"); include_ecrire ("inc_base"); +define("_ECRIRE_INSTALL", "1"); define('_FILE_TMP', '_install'); function install() diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php index cfc149823cd9cc966661d0578317e5a4abd49e23..8b8173d7b924524eb74e64956913a9ff82208716 100644 --- a/ecrire/inc_utils.php +++ b/ecrire/inc_utils.php @@ -581,6 +581,15 @@ function charger_plugins($plugins) { #var_dump($plugins);var_dump($spip_pipeline);var_dump($spip_matrice);exit; } +// predicat sur les scripts de ecrire qui n'authentifient pas par cookie + +function autoriser_sans_cookie($nom) +{ + static $autsanscookie = array('aide_index', 'install', 'admin_repair'); + $nom = preg_replace('/.php[3]?$/', '', basename($nom)); + return in_array($nom, $autsanscookie); +} + // Cette fonction charge le bon inc-urls selon qu'on est dans l'espace // public ou prive, la presence d'un (old style) inc-urls.php3, etc. function charger_generer_url() { diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3 index 592c6d35b9fac6f375175e6ba565a0f136f1694d..257eb18e57492b2d29e66a603bac3cf86f0f3700 100644 --- a/ecrire/inc_version.php3 +++ b/ecrire/inc_version.php3 @@ -288,7 +288,6 @@ $connect_statut = ''; $hash_recherche = ''; $hash_recherche_strict = ''; - // // Capacites php (en fonction de la version) // @@ -394,9 +393,8 @@ $spip_lang = $langue_site; // Que faire si Spip n'est pas installe... sauf si justement on l'installe! // if (!(_FILE_CONNECT -OR defined('_ECRIRE_INSTALL') OR defined('_TEST_DIRS') -OR defined('_ECRIRE_AIDE'))) { +OR autoriser_sans_cookie($SCRIPT_NAME))) { include_ecrire('inc_upgrade'); info_install(); diff --git a/ecrire/install.php3 b/ecrire/install.php3 index 34a8a06c5dcdbc3946e22c25f981b4775a40b75e..6e6b5935f6923ab773c55417cff97a5fa761be8c 100644 --- a/ecrire/install.php3 +++ b/ecrire/install.php3 @@ -10,8 +10,5 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ -define("_ECRIRE_INSTALL", "1"); -include ("inc_version.php3"); -$var_f = include_fonction($SCRIPT_NAME); -$var_f(); +include ("inc.php3"); ?>