summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/html.php7
-rw-r--r--inc/infoutils.php4
2 files changed, 8 insertions, 3 deletions
diff --git a/inc/html.php b/inc/html.php
index 4e3744fd1..b6c5cc7ba 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1034,7 +1034,10 @@ function html_conflict($text,$summary){
* @author Andreas Gohr <andi@splitbrain.org>
*/
function html_msgarea(){
- global $MSG;
+ global $MSG, $MSG_shown;
+ // store if the global $MSG has already been shown and thus HTML output has been started
+ $MSG_shown = true;
+
if(!isset($MSG)) return;
$shown = array();
@@ -1046,6 +1049,8 @@ function html_msgarea(){
print '</div>';
$shown[$hash] = 1;
}
+
+ unset($GLOBALS['MSG']);
}
/**
diff --git a/inc/infoutils.php b/inc/infoutils.php
index d3c6f2918..5f406aa3e 100644
--- a/inc/infoutils.php
+++ b/inc/infoutils.php
@@ -258,7 +258,7 @@ function check(){
* @see html_msgarea
*/
function msg($message,$lvl=0,$line='',$file=''){
- global $MSG;
+ global $MSG, $MSG_shown;
$errors[-1] = 'error';
$errors[0] = 'info';
$errors[1] = 'success';
@@ -268,7 +268,7 @@ function msg($message,$lvl=0,$line='',$file=''){
if(!isset($MSG)) $MSG = array();
$MSG[]=array('lvl' => $errors[$lvl], 'msg' => $message);
- if(headers_sent()){
+ if(isset($MSG_shown) || headers_sent()){
if(function_exists('html_msgarea')){
html_msgarea();
}else{