cferror exception type using a database query to log errors

My question is: is it possible to log errors to a database when redirecting an exception error to a template page using <cferror type="exception" ...>. From what I've read out on the net, it should work, right?

In my application.cfm file I have the entry:

<cferror type="exception" template="errorpage.cfm" exception="Expression">

The errorpage.cfm file has a database query that is supposed to log the error specifics to a database. However instead of making the database connection, it displays the error diagnostics from the page that threw the exception.

Here is the contents of errorpage.cfm:

<html>
<head>
<title>We're sorry -- An Error Occurred</title>
</head>
<body>
<b><font face="verdana, arial, helvetica" size="3">We're Sorry. An Error Has Occured.</font></b>
<hr>
<cfoutput>
Sorry an error has occured. <a href="#mainpage#">Click here</a> to try continue.
</cfoutput>
<CFQUERY NAME="recordError" DATASOURCE="#datasrc#" DBTYPE="ODBC">
INSERT INTO Fatal_Errors(Location_ip, Browser, Occured, Referrer_URL, Page, Error_Msg)
VALUES('#Error.RemoteAddress#', '#Error.Browser#', '#Error.DateTime#','#Error.HTTPReferer#','#Error.Template#','#Error.Diagnostics#')
</CFQUERY>
</body>
</html>

I don't know what I'm doing wrong and I'm beginning to doubt that this can be done at all. Any comments?
kitten47Asked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
DrewbytesConnect With a Mentor Commented:
If you are getting the error diagnostics, then there is most likely an error in your CFQUERY in errorpage.cfm. For example, if you comment out the CFQUERY, then you will see text from the file without the diagnostics, eg simialr to:

We're Sorry. An Error Has Occured.
--------------------------------------------------
Sorry an error has occured. Click here to try continue.

You only get the diagnostics if there is an error on the exception handling page (most likely in the query).

It will work if you comment out the query, then I'd suggest adding one field at a time to the CFQUERY until you determine which one is causing the problem.

Good luck.

0
 
kitten47Author Commented:
Thank you. It was because my Error.HTTPReferer was empty.
I was going directly to the page so there was no referrer URL.

For anyone else who might have this problem, here's the code I used to fix it:

<cfif Error.HTTPReferer is "">
     <cfset Error.HTTPReferer = "none">
</cfif>
0
All Courses

From novice to tech pro — start learning today.