PDA

Bekijk de volledige versie : [tutorial] Maak je eigen error pages.


atox
03-01-2004, 12:55 AM
In deze tutorial leg ik je uit hoe je stap voor stap je eigen error pages maakt en hoe je een handige mail krijgt als er iemand een foutmelding krijgt. Dit omdat je dan weet als iemand op je site aan het snuffelen is naar bijvoorbeeld open directories of als je een foute link hebt staan op je website.


Eerst voeg je in .htacces (in je root folder) de volgende lijnen 'code' toe (onderaan is goed) :

[code:1]
ErrorDocument 400 /400.php
ErrorDocument 404 /404.php
[/code:1]

(Zo ziet het eruit als je errordocuments in je root folder staan je kan natuurlijk het in een speciaal mapje errors steken en dan zien de lijnen code er zo uit:)

[code:1]
ErrorDocument 400 /errors/400.php
ErrorDocument 404 /errors/404.php
[/code:1]

Let wel dat je geen volledige URL voor 400.php ofzo zet want dan werken het mailscriptje niet meer naar behoren.


Nu maak je zelf het design van je errorpagina. Die kan je volledig bekleden met alle html javascript en php die je kent. Zorg wel dat er altijd een link terug is naar de homepage van je website of naar de vorige pagina. Anders heeft zo een foutpagina weinig zin.


Nu ga je ergens in je pagina volgende php code toevoegen:

[code:1]
<?php

//Mail On Error by atox

$ip=$HTTP_SERVER_VARS["REMOTE_ADDR"]; //Haal het ip van de bezoeker op
$refer=getenv('HTTP_REFERER'); //Haal de eventuele pagina op vanwaar naar de onbestaande page gelinkt werd
$url=$_SERVER['REQUEST_URI']; //Haal de pagina op waar de fout zich voordoet

$email="problemen@jouwdomein.nl"; //Naar dit adres wordt de mail verstuurd - pas dit aan naar je wensen!
$message="Beste Webmaster, //Hier start de email. Buiten de variabelen mag je deze ook aanpassen.

Een bezoeker met het ip $ip had een foutmelding op de volgende pagina:
$url
Indien hij deze pagina gevonden had via een link dan staat de pagina vanwaar gelinkt werd hieronder:
$refer

Vriendelijke Groeten,

Uw Error Manager";

$subject="Bezoeker kwam op Error Page";//Subject van de mail die je toegestuurd wordt - aanpasbaar!

//Nu wordt de mail verstuurd. Vergeet niet het From en het Reply-To gedeelte aan te passen!

mail("$email", "$subject", "$message",
"From: Error Manager Jouwsite <webmaster@jouwsite.nl>\r\n"
."Reply-To: webmaster@jouwsite.nl\r\n"
."X-Mailer: PHP/" . phpversion());

?>
[/code:1]

Zo, dat is alles wat er moet gebeuren. Indien je variabelen opslaat in sessions als de persoon ingelogd is (bijvoorbeeld zijn gebruikersnaam ofzo) dan kan je die ook in de mail gebruiken dooe gewoon $_SESSION[variabelenaam] erin te vermelden.


Veel plezier ermee en voor verdere vragen kan je me steeds mailen of toevoegen op msn messenger:
atoxje'at'hotmail'dot'com



Met dank aan GoT en Hennie

blizt
03-01-2004, 08:15 AM
N.o., maar we hebben een apart tutorials-onderdeel? Verder ben ik niet hekemaal weg van je code & dat mailen... nee da's lekker als je een grote site hebt, krijg je elke 3 minuten 25 mailtjes, omdat je heel ff iets had veranderd.

tidius
03-01-2004, 08:41 AM
Wat ook leuk is is zelf een error pagina maken terwijl er helemaal geen error is, ik zie het nut er niet van in, maar omdat dit topic er toch over gaat:

<?php
header("HTTP/1.0 404 Not Found");
?>

wel slechts beschikbaar vanaf PHP 4.3.0

atox
03-01-2004, 12:21 PM
N.o., maar we hebben een apart tutorials-onderdeel? Verder ben ik niet hekemaal weg van je code & dat mailen... nee da's lekker als je een grote site hebt, krijg je elke 3 minuten 25 mailtjes, omdat je heel ff iets had veranderd.Sorry, dat apart tutorial onderdeel had ik nog niet ontdekt en ik kan er trouwens niet posten...

Ik denk dat dit juist nuttig is bij grote sites. Als je zelf telkens elke link moet uittesten om te zien of er geen fouten inzitten dan ben je ook wel mooi lang bezig. Bovendien is het nuttig om - zoals hierboven vermeld - te zien wanneer er bepaalde ip's heel je servers aan het afzoeken zijn naar open dirs enz...

Mijn site heeft nu ongeveer 1000 unieke bezoekers per dag en de code draait nu een maand en ik heb alleen nuttige mails gekregen ivm die error reporting. Trouwens als je aanpassingen doet, dan doe je dat eerst lokaal om dan alles tegelijk up te loaden, dan heb je zo geen problemen.

Grtz

Cybertinus
03-01-2004, 03:38 PM
Hee, deze tut ken ik al :)
Misschien van het forum van onze webhosting At0x?
(voordat de moderators dit eraf gaan gooien als gekopieerd: Hij heeft dit echt zelf geschreven. Hij heeft het gewoon op 2 forum's geplaatst).

Groeten, Cybertinus

atox
03-01-2004, 03:45 PM
inderdaad :) ik heb hem daar ook gepost :)

Hoe meer mensen hem kunnen gebruiken, hoe beter zeker! :)

Cybertinus
03-01-2004, 03:45 PM
Das zeker waar

Groeten, Cybertinus