Subversion Repositories Sites.tela-botanica.org

Compare Revisions

Ignore whitespace Rev 3 → Rev 4

/trunk/actu/ecrire/admin_repair.php3
New file
0,0 → 1,106
<?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. *
\***************************************************************************/
 
 
include ("inc_version.php3");
 
include_ecrire ("inc_admin.php3");
include_ecrire ("inc_texte.php3");
include_ecrire ("inc_presentation.php3");
 
 
/*
* 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_ecrire ("inc_auth.php3");
$connect_statut = '0minirezo';
 
 
function verifier_base() {
if (! $res1= spip_query("SHOW TABLES"))
return false;
 
while ($tab = spip_fetch_array($res1)) {
echo "<p><b>".$tab[0]."</b> ";
 
if (!($result_repair = spip_query("REPAIR TABLE ".$tab[0])))
return false;
 
if (!($result = spip_query("SELECT COUNT(*) FROM ".$tab[0])))
return false;
 
list($count) = spip_fetch_array($result);
if ($count>1)
echo "("._T('texte_compte_elements', array('count' => $count)).")\n";
else if ($count==1)
echo "("._T('texte_compte_element', array('count' => $count)).")\n";
else
echo "("._T('texte_vide').")\n";
 
$row = spip_fetch_array($result_repair);
$ok = ($row[3] == 'OK');
 
if (!$ok)
echo "<pre><font color='red'><b>".htmlentities(join("\n", $row))."</b></font></pre>\n";
else
echo " "._T('texte_table_ok')."<br>\n";
 
}
 
return true;
}
 
// verifier version MySQL
if (! $res1= spip_query("SELECT version()"))
$message = _T('avis_erreur_connexion_mysql');
else {
$tab = spip_fetch_array($res1);
$version_mysql = $tab[0];
if ($version_mysql < '3.23.14')
$message = _T('avis_version_mysql', array('version_mysql' => $version_mysql));
else {
$message = _T('texte_requetes_echouent');
$ok = true;
}
}
 
$action = _T('texte_tenter_reparation');
 
if ($ok) {
debut_admin($action, $message);
 
install_debut_html(_T('texte_tentative_recuperation'));
 
 
debut_cadre_relief();
if (! verifier_base())
echo "<br><br><font color='red'><b><tt>"._T('avis_erreur_mysql').' '.spip_sql_errno().': '.spip_sql_error() ."</tt></b></font><br><br>\n";
fin_cadre_relief();
echo "<br>";
 
install_fin_html();
 
fin_admin($action);
}
else {
install_debut_html(_T('titre_reparation'));
echo "<p>$message";
install_fin_html();
}
 
 
?>