Error Page 404

Hi,

I have quite a large Web Site which is update all the time.  To correct any errors which may take place, i'm trying to include on my 404 error page the page the user was on when they were taken to the error page and what link they were trying to find, ann then allow the user to submit these details to the webmaster by clicking a button.

Can this be done and if so, can someone advise how to achieve it?

Kind Regards,
Anthony
d10u4vAsked:
Who is Participating?
 
nizsmoConnect With a Mentor DeveloperCommented:
You can use http_referrer in PHP to do this:

to try that this works:

<?php
echo $_SERVER['HTTP_REFERER'];
?>

Then you can on your custom 404 page, build a simple email form and auto fill the email form field with the referrer value, then allow the user/visitor to send this to the webmaster.

Hope this helps.
0
 
d10u4vAuthor Commented:
How do i autofill the form?  Do i just put ['HTTP_REFERER'] in the Init Val of the form field?

Anthony
0
 
nizsmoDeveloperCommented:
you can put it in an invisible field, which upon submitting the form will submit this field too:

// ...code...//
<input type="hidden" name="referer" value="<?php echo $_SERVER['HTTP_REFERER']; ?>">
// ...code...//
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
d10u4vAuthor Commented:
I have inserted:
<?php
echo $_SERVER['HTTP_REFERER'];
?>
Into one of my cells on my error page and have tested it on the server, and othing happens.  It dons't show the refered page...

Anthony
0
 
nizsmoDeveloperCommented:
This will show up as BLANK if you are not coming from anywhere and simply going to the script directly. To make it show something, create a hyperlink linking to the page with the code:
<?php
echo $_SERVER['HTTP_REFERER'];
?>

and you should see something.

hope this helps.
0
 
d10u4vAuthor Commented:
I tested it by uploading it and going to a link i know does not exits.

Anthony
0
 
nizsmoDeveloperCommented:
what is your code, are you able to post it?
0
 
d10u4vAuthor Commented:
This is my complete HTML code for the error page:


<html>
 
<head>
<title>ARchive Services Data & Records Management Ltd  ::  404 Page Not Found</title>
<link href="http://www.archiveservices.co.uk/Style/StyleSheet.css" rel="stylesheet" type="text/css">
<style type="text/css">
</style>
</head>
 
<body>
<center>
  <table width="50%" align="center" cellpadding="2" cellspacing="2">
    <tr>
      <td width="19%">&nbsp;</td>
      <td width="64%" class="Heading"><div align="center" class="style2">404</div></td>
      <td width="17%">&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><div align="center"><img src="http://www.archiveservices.co.uk/Images/Logo.gif" width="315" height="66"></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="Heading"><div align="center">Page Not Found ! </div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><div align="center" class="GeneralText"></div></td>
      <td><div align="center" class="Heading">
        <?php
echo $_SERVER['HTTP_REFERER'];
?>
      </div></td>
      <td><div align="center"></div></td>
    </tr>
    <tr>
      <td height="57">&nbsp;</td>
      <td class="GeneralText"><div align="justify"><span class="GeneralText"><font face="Verdana, Arial, Helvetica, sans-serif">You may have typed the web address incorrectly. Please check the address and   spelling ensuring that it does <strong>not</strong> contain</font></span><span class="style7"><font face="Verdana, Arial, Helvetica, sans-serif"> any </font></span><span class="GeneralText"><font face="Verdana, Arial, Helvetica, sans-serif">spaces</font></span>.</div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td height="46" class="GeneralText">&nbsp;</td>
      <td class="GeneralText"><div align="justify" class="GeneralText"><font face="Verdana, Arial, Helvetica, sans-serif">It is possible that the page you were looking for may have been moved,   updated or deleted.</font></div></td>
      <td class="GeneralText">&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="GeneralText"><div align="justify"></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="GeneralText"><div align="justify"><span class="Heading"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Please try the following options instead:</font></span></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="GeneralText"><div align="justify"></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="GeneralText"><div align="justify" class="GeneralText"><font face="Verdana, Arial, Helvetica, sans-serif">Return to the <a href="http://www.archiveservices.co.uk">Home Page</a></font> and search for the page you require </div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="GeneralText"><div align="justify"></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="GeneralText"><div align="justify"><span class="GeneralText"><font face="Verdana, Arial, Helvetica, sans-serif">If you still encounter problems then please report this to the Webmaster by clicking Report below. </font></span></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="GeneralText">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="GeneralText"><form name="Error 404 Report" method="post" action="http://www.archiveservices.co.uk/form/formprocessorpro.php">
	  <input type="hidden" name="base_path" value="/www/hterror" />
	  <input type="hidden" name="r_referer" value="<?php echo $_SERVER['HTTP_REFERER']; ?>">
	  
      <input type="submit" name="Submit" value="Report Link">
      </form>
      </td>
      <td>&nbsp;</td>
    </tr>
  </table>
  <p>&nbsp;</p>
</center>
</body>
 
</html>

Open in new window

0
 
nizsmoDeveloperCommented:
The script works peerfect.

Lets say your script above is named 404.php, then save another file:

<html>
<a href="404.php">Test script!</a>
</html>

and you should see your script above working and capturing the referer.
0
 
d10u4vAuthor Commented:
All my error pages are stored on the Domain Server under www/hterror/

Could it be that the error pages are not saved in my html folder on my domain?

Anthony
0
 
d10u4vAuthor Commented:
Got it working.  One final question, How do i capture the address they were trying to get?

Anthony
0
 
nizsmoDeveloperCommented:
good on you!

>>How do i capture the address they were trying to get?

You can capture anyway you like, whether it is assigning it as a variable and printing it elsewhere, or sending it through a form and in the script which the form submits to get the referer like this:

<?php
...code...

$myreferer = $_POST["r_referer"];

// then do something with $myreferer, just as you would with a normal PHP variable.
?>
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.