All pastes #895661 Raw Edit

Neeon

public text v1 · immutable
·published 2008-02-07 23:46 UTC
rendered paste body
Ok, what is going wrong with my script is;
When i set an error, it displays once, but it's added twice on the db.. 

This is the error handler functions:
---------------------------->
function setError($type = 'notis', $message = NULL)
   {
	 global $sql_prefix;
	   if($message)
		   {
			   if(!isset($_SESSION['error_log'])) 
				   {
					   $_SESSION['error_log'] = array();
					 }
					 
				 if(!isset($_SESSION['error_log'][$type]))
				   {
					   $_SESSION['error_log'][$type] = array();
					 }
					
				 $_SESSION['error_log'][$type][] = $message;
				
			   $url_input = __IPUBLISHER_CURRENT_URL;
				 $dateoferror = date("Y-m-d H:i:s");
				 $user_inuse = BRUKER_ID;
				 if($type != "message") 
				   {
				     $query = "INSERT INTO {$sql_prefix}error_log (id,type,message,url,user,dato) VALUES ('','{$type}','{$message}','{$url_input}', '{$user_inuse}', '{$dateoferror}')"; 
		         @mysql_query($query);
				   }
				 
					
			 }

		 return isset($_SESSION['error_log']) ? $_SESSION['error_log'] : NULL; 	 
	 }

// Read errors that are set 
 function readError($type = NULL)
   {
	   $errors = setError();
	   if($errors = setError())
		   {
			   if($type)
				   {
					   unset($_SESSION['error_log'][$type]);
						 return array($type => $errors[$type]);
						 				
					 }
				 else 
				   {
						 unset($_SESSION['error_log']);
						 return $errors; 
					 }
			 
			 
			 }
		 	
		 return array();
	 }




-------------
Now theese all seem to work, the problem starts when i include a file with ob_get_contents
This is two functions from the template system

------------>

function fetch($fil) {
        ob_start();
        include $fil;
        $inc = ob_get_contents();
        ob_end_clean();
        
        return $inc;
    }

    function output_page($side) {
    global $lng;
        
		$apne = read_url($this->tpl_mappe.'/'.$side);
		foreach($this->tpl_vars as $navn => $verdi) {
			$apne = $this->erstatt($navn, $verdi, $apne);
		}
		
		$apne = preg_replace('{\{(.*?)\}}', '', $apne);
		return $apne;
    }



-----------
All this is combined like this
setError('error', 'This is just an test');
$t->add('show_error', showErrors(readError()));
$t->add('content', $t->fetch('ipub-pages/'.__IPUB_CATEGORY__.'/'.__IPUB_SUBPAGE__.'.inc.php'));

echo $t->output_page("template.tpl");

--- 
This will add the error twice in the db, but if i comment out the "content", everything works, and the 
error is only inserted once.. But.. I need to use the fetch function to get the content in the right place. :(