From d692e075be63b60bc5a002989aa4297e92159aff Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Tue, 10 Jun 2014 07:34:58 +0000 Subject: [PATCH] =?UTF-8?q?en=20cas=20d'erreur=20d'execution=20sur=20un=20?= =?UTF-8?q?squelette,=20afficher=20le=20message=20d'erreur=20en=20fran?= =?UTF-8?q?=C3=A7ais=20(et=20non=20zbug=5Ferreur=5Fexecution=5Fpage)=20ain?= =?UTF-8?q?si=20que=20le=20code=20PHP=20qu'on=20a=20essay=C3=A9=20d'ex?= =?UTF-8?q?=C3=A9cuter.=20Si=20quelqu'un=20sait=20comment=20trouver=20la?= =?UTF-8?q?=20ligne=20de=20l'erreur=20et=20la=20mettre=20en=20=C3=A9videnc?= =?UTF-8?q?e=20avec=20un=20fond=20jaune=20fluo,=20gogogo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/public.php | 9 ++++++++- ecrire/public/evaluer_page.php | 12 +++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/ecrire/public.php b/ecrire/public.php index 1be36db8bc..560b6e7b9a 100644 --- a/ecrire/public.php +++ b/ecrire/public.php @@ -149,7 +149,14 @@ if (isset($GLOBALS['_INC_PUBLIC']) AND $GLOBALS['_INC_PUBLIC']) { include _ROOT_RESTREINT."public/evaluer_page.php"; envoyer_entetes($page['entetes']); if ($res === false) { - $msg = array('zbug_erreur_execution_page'); + include_spip('inc/autoriser'); + $err = _T('zbug_erreur_execution_page'); + if (autoriser('webmestre')) { + $err .= "\n<hr />\n" + .highlight_string($page['codephp'],true) + ."\n<hr />\n"; + } + $msg = array($err); erreur_squelette($msg); } diff --git a/ecrire/public/evaluer_page.php b/ecrire/public/evaluer_page.php index 85f5611097..775df1807e 100644 --- a/ecrire/public/evaluer_page.php +++ b/ecrire/public/evaluer_page.php @@ -53,9 +53,19 @@ if ($page['process_ins'] != 'html') { $page['texte'] = str_replace('<'.'?xml', "<\1?xml", $page['texte']); $res = eval('?' . '>' . $page['texte']); - $page['texte'] = ob_get_contents(); + $eval = ob_get_contents(); ob_end_clean(); + // erreur d'exécution ? + // enregistrer le code pour afficher zbug_erreur_execution_page + if (false === $res) { + $page['codephp'] = $page['texte']; + $page['texte'] = '<!-- erreur -->'; + } + else { + $page['texte'] = $eval; + } + $page['process_ins'] = 'html'; if (strpos($page['texte'],'?xml')!==false) -- GitLab