Scripts

Database error reporter

Nou.. Het scriptje bevat een voorbeeld.. Werkt heel simpel, weergeeft duidelijk en overzichtelijk wat je fout doet + de query, tijd, pagina en ip adres. Ook stuurt hij een eenmalige e-mail per bezoeker. Dus als er 100 bezoekers tegelijk komen krijg je wel 100 mailtje :) Zie ook het voorbeeld: www.phphulp.nl/voorbeeld/mysql_error.php Zo ziet de database error report er dus uit..

database-error-reporter
<?
session_start();

//---- create function
function dberror($sql, $line)
{
	//---- some needed mail vars
	$email_to = "[email protected]";
	$email_subject = "MySQL db error @ " . date('d.m.Y H:i');
	$email_from = "From: Automatisch <[email protected]>";
	$email_headers = "From: DB error reporter <[email protected]>\r\n"; 
	$email_headers .= "MIME-Version: 1.0\r\n"; 
	$email_headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
	
	//---- generate db error report
	$error = "<pre style=\"position: absolute; top: 20px; left: 20px; background-color: #FCFCFC; border: 1px solid #CCCCCC; padding: 8px; width: 100%; z-index: 5;\"><code>";
	$error .= "<div style=\"float: left; width: 90px;\" valign=\"top\">";
	$error .= "<b>Query:</b><br />";
	$error .= "<b>Error:</b><br />";
	$error .= "<b>Line:</b><br />";
	$error .= "<b>Page:</b><br />";
	$error .= "<b>Date/time:</b><br />";
	$error .= "<b>IP addr:</b><br />";
	$error .= "</div><div valign=\"top\">";
	$error .= $sql . "<br />";
	$error .= mysql_error() . "<br />";
	$error .= $line . "<br />";
	$error .= $_SERVER['PHP_SELF'] . "<br />";
	$error .= date('d.m.Y H:i') . "<br />";
	$error .= $_SERVER['REMOTE_ADDR'] . "<br />";
	$error .= "</div></code></pre>";
  
  	//---- check for first try
	if (!$_SESSION['dberror_mail'])
	{

		mail($email_to, $email_subject, $error, $email_headers);
		$_SESSION['dberror_mail'] = 1;
	}
  
 	//---- return the database error
	return $error;
}

//---- execute any kind of query to test the error report
//---- in this case I've forgot to make a database connection (Oops!)
$sql = "SELECT * FROM iets_niet_bestaans";
$res = @mysql_query($sql) or die(dberror($sql, __LINE__));
?>

Reacties

0
Nog geen reacties.