diff --git a/ecrire/inc_db_mysql.php3 b/ecrire/inc_db_mysql.php3 index 0726d86d755ff90b5abb442e85923f7db0479b4c..83d702845377b5c9b4e352b8e5caf5789a69fe7d 100644 --- a/ecrire/inc_db_mysql.php3 +++ b/ecrire/inc_db_mysql.php3 @@ -140,10 +140,26 @@ function traite_query($query) { function spip_connect_db($host, $port, $login, $pass, $db) { global $spip_mysql_link, $spip_mysql_db; // pour connexions multiples + // gerer le fichier ecrire/data/mysql_out + ## TODO : ajouter md5(parametres de connexion) + if (@file_exists(_FILE_MYSQL_OUT) + AND (time() - @filemtime(_FILE_MYSQL_OUT) < 300) + AND !defined('_ECRIRE_INSTALL')) + return $GLOBALS['db_ok'] = false; + if ($port > 0) $host = "$host:$port"; $spip_mysql_link = @mysql_connect($host, $login, $pass); $spip_mysql_db = $db; - return @mysql_select_db($db); + $ok = @mysql_select_db($db); + + $GLOBALS['db_ok'] = $ok + AND !!@spip_num_rows(@spip_query_db('SELECT COUNT(*) FROM spip_meta')); + + // En cas d'erreur marquer le fichier mysql_out + if (!$GLOBALS['db_ok'] + AND !defined('_ECRIRE_INSTALL')) @touch(_FILE_MYSQL_OUT); + + return $GLOBALS['db_ok']; } diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3 index b86db08649d902ffd4ade3f690f445c50560e7e6..29ab7ce37cf004e87de4837950ad8a2eeafc9eb8 100644 --- a/ecrire/inc_version.php3 +++ b/ecrire/inc_version.php3 @@ -577,6 +577,8 @@ function spip_query($query) { return; // Vieux format de fichier connexion + // Note: la version 0.1 est compatible avec la 0.2 (mais elle gere + // moins bien les erreurs timeout sur SQL), on ne force donc pas l'upgrade if ($GLOBALS['spip_connect_version'] < 0.1) { if (!_DIR_RESTREINT) {$GLOBALS['db_ok'] = false; return;} @Header("Location: upgrade.php3?reinstall=oui"); diff --git a/ecrire/install.php3 b/ecrire/install.php3 index b1232108bd7a5a8dc7b5ed3121e7d6423d8d1465..c0b690449d01720909e0d94607e8fa7298a7e717 100644 --- a/ecrire/install.php3 +++ b/ecrire/install.php3 @@ -258,7 +258,7 @@ else if ($etape == 4) { // Message pour spip_query : tout va bien ! $GLOBALS['db_ok'] = true; - $GLOBALS['spip_connect_version'] = 0.1; # cf. inc_version + $GLOBALS['spip_connect_version'] = 0.2; # cf. inc_version // Test si SPIP deja installe spip_query("SELECT COUNT(*) FROM spip_meta"); @@ -297,11 +297,11 @@ else if ($etape == 4) { $conn = "<"."?php\n"; $conn .= "if (defined(\"_ECRIRE_INC_CONNECT\")) return;\n"; $conn .= "define(\"_ECRIRE_INC_CONNECT\", \"1\");\n"; - $conn .= "\$GLOBALS['spip_connect_version'] = 0.1;\n"; + $conn .= "\$GLOBALS['spip_connect_version'] = 0.2;\n"; $conn .= "include_ecrire('inc_db_mysql.php3');\n"; $conn .= $ligne_rappel; - $conn .= "@spip_connect_db('$adresse_db','','$login_db','$pass_db','$sel_db');\n"; - $conn .= "\$GLOBALS['db_ok'] = !!@spip_num_rows(@spip_query_db('SELECT COUNT(*) FROM spip_meta'));\n"; + $conn .= "spip_connect_db('$adresse_db','','$login_db','$pass_db','$sel_db');\n"; +# $conn .= "\$GLOBALS['db_ok'] = !!@spip_num_rows(@spip_query_db('SELECT COUNT(*) FROM spip_meta'));\n"; $conn .= "?".">"; $myFile = fopen(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, "wb"); fputs($myFile, $conn);