From 22a590b8c3e8c2b3f779bdee5b76795eaa6ca5b2 Mon Sep 17 00:00:00 2001
From: Antoine Pitrou <pitrou@free.fr>
Date: Sun, 7 Sep 2003 21:57:00 +0000
Subject: [PATCH] detection des erreurs systeme

---
 ecrire/aide_index.php3 |  3 ++-
 inc-debug-squel.php3   | 40 +++++++++++++++++++++++++++++-----------
 2 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/ecrire/aide_index.php3 b/ecrire/aide_index.php3
index 51347d0208..01a0bd8432 100644
--- a/ecrire/aide_index.php3
+++ b/ecrire/aide_index.php3
@@ -1,9 +1,10 @@
 <?php
 
 include ("inc_version.php3");
+
 // Recuperer les infos de langue (preferences auteur), si possible
 if (file_exists("inc_connect.php3")) {
-    include_ecrire ("inc_auth.php3");
+	include_ecrire ("inc_auth.php3");
 }
 
 include_ecrire("inc_lang.php3");
diff --git a/inc-debug-squel.php3 b/inc-debug-squel.php3
index 6587b1ba1e..8fb5ba4d50 100755
--- a/inc-debug-squel.php3
+++ b/inc-debug-squel.php3
@@ -7,18 +7,36 @@ define("_INC_DEBUG_SKEL", "1");
 
 
 function erreur_requete_boucle($query, $id_boucle) {
-	$retour .= "<tt><br><br><blink>&lt;BOUCLE".$id_boucle."&gt;</blink><br>\n".
-		"<b>Erreur dans la requ&ecirc;te envoy&eacute;e &agrave; MySQL :</b><br>\n".
-		htmlspecialchars($query)."<br>\n<font color=\'red\'><b>&gt; ".
-		spip_sql_error()."</b></font><br>\n".
-		"<blink>&lt;/BOUCLE".$id_boucle."&gt;</blink></tt>\n";
-	$retour .= "<" ."?php
+	$erreur = spip_sql_error();
+	if (ereg('errno:[[:space:]]+([0-9]+)', $erreur, $regs))
+		$errno = $regs[1];
+	$erreur = htmlspecialchars($erreur);
+
+	// Erreur systeme
+	if ($errno > 0) {
+		$retour .= "<tt><br><br><blink>Erreur syst&egrave;me</blink><br>\n".
+			"<b>Le disque dur est peut-&ecirc;tre plein, ou la base de donn&eacute;es endommag&eacute;e. <br>";
+		$retour .= "<" ."?php
+		if (\$GLOBALS['spip_admin']) {
+			echo \"<font color='red'>Essayez de <a href='ecrire/admin_repair.php3'>r&eacute;parer la base</a>, \"
+				.\"ou contactez votre h&eacute;bergeur.</font><br></b>".
+				"<blink>Erreur syst&egrave;me</blink></tt>\n\";
+		} ?".">";
+	}
+	// Requete erronee
+	else {
+		$retour .= "<tt><br><br><blink>&lt;BOUCLE".$id_boucle."&gt;</blink><br>\n".
+			"<b>Erreur dans la requ&ecirc;te envoy&eacute;e &agrave; MySQL :</b><br>\n".
+			htmlspecialchars($query)."<br><font color='red'><b>$erreur</b></font><br>".
+			"<blink>&lt;/BOUCLE".$id_boucle."&gt;</blink></tt>\n";
+		$retour .= "<" ."?php
 		if (\$GLOBALS['spip_admin']) {
-		include_ecrire ('inc_lang.php3');
-		utiliser_langue_visiteur();
-		include_ecrire('inc_presentation.php3');
-		echo aide('erreur_mysql');
-	} ?".">";
+			include_ecrire ('inc_lang.php3');
+			utiliser_langue_visiteur();
+			include_ecrire('inc_presentation.php3');
+			echo aide('erreur_mysql');
+		} ?".">";
+	}
 	$retour .= "<br><br>\n"; // debugger les squelettes
 	return $retour;
 }
-- 
GitLab