[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/exec/ -> admin_repair.php (source)

   1  <?php
   2  
   3  /***************************************************************************\
   4   *  SPIP, Systeme de publication pour l'internet                           *
   5   *                                                                         *
   6   *  Copyright (c) 2001-2007                                                *
   7   *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
   8   *                                                                         *
   9   *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
  10   *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
  11  \***************************************************************************/
  12  
  13  if (!defined("_ECRIRE_INC_VERSION")) return;
  14  
  15  /*
  16   * REMARQUE IMPORTANTE : SECURITE
  17   * Ce systeme de reparation doit pouvoir fonctionner meme si
  18   * la table spip_auteurs est en panne : on n'appelle donc pas
  19   * inc_auth ; seule l'authentification ftp est exigee
  20   *
  21   */
  22  
  23  $GLOBALS['connect_statut'] = '0minirezo';
  24  
  25  include_spip('inc/admin');
  26  include_spip('inc/texte');
  27  include_spip('inc/minipres');
  28  include_spip('base/db_mysql');
  29  
  30  // http://doc.spip.org/@verifier_base
  31  function verifier_base() {
  32      $res1= spip_query("SHOW TABLES");
  33      if (!$res1) return false;
  34  
  35      $res = "";
  36      while ($tab = spip_fetch_array($res1,SPIP_NUM)) {
  37          $res .= "<p><b>".$tab[0]."</b> ";
  38  
  39          $result_repair = spip_query("REPAIR TABLE ".$tab[0]);
  40          if (!$result_repair) return false;
  41  
  42          $result = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM ".$tab[0]));
  43          if (!$result) return false;
  44  
  45          $count = $result['n'];
  46          if ($count>1)
  47              $res .= "("._T('texte_compte_elements', array('count' => $count)).")\n";
  48          else if ($count==1)
  49              $res .= "("._T('texte_compte_element', array('count' => $count)).")\n";
  50          else
  51              $res .= "("._T('texte_vide').")\n";
  52  
  53          $row = spip_fetch_array($result_repair,SPIP_NUM);
  54          $ok = ($row[3] == 'OK');
  55  
  56          if (!$ok)
  57              $res .= "<pre><span style='color: red; font-weight: bold;'>".htmlentities(join("\n", $row))."</span></pre>\n";
  58          else
  59              $res .= " "._T('texte_table_ok')."<br />\n";
  60  
  61      }
  62  
  63      return $res;
  64  }
  65  
  66  // http://doc.spip.org/@exec_admin_repair_dist
  67  function exec_admin_repair_dist()
  68  {
  69      $ok = false;
  70      $version_mysql = spip_mysql_version();
  71      if (!$version_mysql)
  72        $message = _T('avis_erreur_connexion_mysql');
  73      else {
  74        if ($version_mysql < '3.23.14')
  75          $message = _T('avis_version_mysql', array('version_mysql' => $version_mysql));
  76        else {
  77          $message = _T('texte_requetes_echouent');
  78          $ok = true;
  79        }
  80      }
  81  
  82      $action = _T('texte_tenter_reparation');
  83  
  84      if ($ok) {
  85          debut_admin("admin_repair", $action, $message);
  86  
  87          if (! $res = verifier_base())
  88              $res = "<br /><br /><span style='color: red; font-weight: bold;'><tt>"._T('avis_erreur_mysql').' '.spip_sql_errno().': '.spip_sql_error() ."</tt></span><br /><br /><br />\n";
  89          fin_admin($action);
  90          echo minipres(_T('texte_tentative_recuperation'), $res);
  91      }
  92      else {
  93        echo minipres(_T('titre_reparation'), "<p>$message</p>");
  94      }
  95  }
  96  ?>


Généré le : Wed Nov 21 10:20:27 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics