Jump to content

404 Error Detection


imperium2335

Recommended Posts

Hi,

 

I would like to be able to receive and emain on what pages users are getting 404 errors (or any other for that fact).

 

I have the directive in my .htaccess to redirect missing pages to my custom 404.php page.

 

However, despite trying a number of tutorial on how to get it to email me the url they tried to access, I can not get it to work.

 

My code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Please Wait</title>
<meta http-equiv="refresh" content="0; url=http://www.mysite.co.uk" />
</head>

<body>
<?PHP

$ip = getenv ("REMOTE_ADDR");
$requri = getenv ("REQUEST_URI");
$servname = getenv ("SERVER_NAME");
$combine = $ip . " tried to load " ;
$url = $servname . $requri ;
$httpref = getenv ("HTTP_REFERER");
$httpagent = getenv ("HTTP_USER_AGENT");
$today = date("D M j Y g:i:s a T");
$message2 = "On $today, $combine:\n
http://www.$url\n
User Agent = $httpagent \n
$httpref ";
$to = "[email protected]";
$subject = "404 Error Report";
$from = "From:[email protected]\r\n";
mail($to, $subject, $message2, $from);


?>
</body>
</html>

 

I just get:

 

On Mon Jan 16 2012 9:55:57 am UTC, 82.153.239.221 tried to load :

 

http://www.www.mysite.co.uk/404.php

 

User Agent = Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.5.30729)

 

Link to comment
https://forums.phpfreaks.com/topic/255131-404-error-detection/
Share on other sites

try doing this:

 

var_dump($_SERVER);

 

and look thru the server variables for a value that may better accommodate your needs...

 

You could peer into the log files, you should be able to see where the logs are stored by checking out your httpd.conf file from apache, or contacting your hosting provider to tell you where they're stored, you should also be able to format your errors to show IP addresses and dates, so you can use the request time and the IP address to get a relatively good idea of which error belongs to which user.. and can email from there..

 

But the second alternative is only if $_SERVER doesn't give you the information you need, I haven't done much custom error pages, especially with emailing of problems, but those 2 places are a good place to start looking :)

Link to comment
https://forums.phpfreaks.com/topic/255131-404-error-detection/#findComment-1308112
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.