From cc58224cff540373081dcde9c64d00efbf0fbddc Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Mon, 10 Jan 2011 21:54:58 +0100 Subject: Fix msg() calls when messages have already been printed This commit fixes two bugs that occurred when msg() was called after html_msgarea() had already been called. - the $MSG array is now cleared when it has been printed (otherwise $MSG has been printed again when another msg() call was done) - headers_sent() didn't work for me, it always reported false although html_msgarea() had already been called which might be explainable with output buffering. This makes msg() now depend on the first call of html_msgarea() or headers_sent() in order to not to break msg() in ajax requests etc. --- inc/infoutils.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc/infoutils.php') 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{ -- cgit v1.2.3