Une page erreur 404 personnalisée en php
Une astuce pour webmaster
Il est toujours plus agréable pour le visiteur de votre site de tomber sur une page d'erreur 404 personnalisée, plutôt que sur l'affreuse page 404 de son navigateur. Celui-ci n'est pas perdu et en plus il va vous aider très facilement à améliorer votre site en vous communiquant l'erreur en tout juste un clic.
Cette astuce est écrite en php, l'extension de votre page sera .php ou .php3 et il faut que votre serveur accepte le php. En premier lieu, il faut mettre un fichier texte (.txt) à la racine de votre site. Ce fichier doit contenir le lien de votre page d'erreur, par exemple comme ceci :
ErrorDocument 404 /erreur_404.php
Ensuite, depuis votre ftp, renommer ce fichier .htaccess sans extension ni rien d'autre, le fichier doit s'appeler sur votre serveur .htaccess c'est tout. Notez qu'il ne faut pas mettre l'adresse absolu dans le lien.
Passons aux choses sérieuses ! Le script présenté ici est utilisé sur Formatic-pc, vous pouvez le tester ici.
Début du code :
<?php
if (!empty($_POST)) {
$to="votrenom@votredomaine";
$sujet="Signalement d'une erreur 404";
$vmessage=($_POST["message"]).($_POST["commentaire"]);
@mail($to,$sujet,$vmessage,"From : Erreur_404");
$history=2;
echo "<p><b>Le problème a bien été signalé au webmestre du site. Nous vous remercions.</b></p><br />\n";
}
Remplacer votrenom@votredomaine l'adresse email où vous voulez être prévenu en cas d'erreur. Le script commence par cette fonction ; le visiteur aura alors cliqué sur le bouton signaler.
La suite du code propose au visiteur de signaler l'erreur au webmestre avec si il le veut, la possibilité de laisser un commentaire pour expliquer le problème.
else {
$history=1;
$result=1;
if (!empty($SCRIPT_URI)) { echo "<p>La page <span class='red'>".$SCRIPT_URI."</span> que vous avez demandée n'existe pas...</p>\n"; }
if (preg_match("'DigExt'",$HTTP_USER_AGENT)) $result=3;
if (preg_match("'votre_application_JAVA'",$SCRIPT_URI)) $result=4;
if (preg_match("'cltreq.asp'",$SCRIPT_URI)) $result=2;
if (preg_match("'owssvr.dll'",$SCRIPT_URI)) $result=2;
if (empty($HTTP_REFERER) || ($HTTP_REFERER=="http://votrenomdedomaine".$PHP_SELF) || empty($SCRIPT_URI)) $result=1;
if ($result==0) {
echo "<p>Si vous pensez qu'il s'agit d'une erreur dans le site, vous pouvez signaler le problème au <a href=\"contact_webmestre.php\">webmestre</a>.</p>\n";
}
if ($result==1) {
$erreur ="DATE : ".date("d/m/Y H:i")."\n\nERREUR :\n";
$erreur.="- HTTP_REFERER : ".$HTTP_REFERER."\n- SCRIPT_URI : ".$SCRIPT_URI."\n";
$visiteur ="\nVISITEUR :\n- Navigateur : ".$HTTP_USER_AGENT."\n- Adresse IP : ".$REMOTE_ADDR."\n";
$visiteur.='- Nom de domaine : '.gethostbyaddr($REMOTE_ADDR)."\n\nCOMMENTAIRE :\n";
$message= $erreur.$visiteur;
echo "<p>Si vous pensez qu'il s'agit d'une erreur dans le site, vous pouvez le signaler au webmestre avec si nécessaire, votre commentaire pour expliquer le problème :</p>\n";
echo "<form name='rapport' action='".$PHP_SELF."' method='post'><center>\n";
echo "<input type='hidden' name='message' value='$message' />Commentaires facultatifs : ".$HTTP_REFERER."<textarea name='commentaire' rows='4' cols='50'></textarea><br />\n";
echo "<br /><input type='submit' value=\"Cliquez ici pour signaler l'erreur\" /></center>\n";
echo "</form>\n";
}
N'oubliez pas de remplacer votrenomdedomaine !!!
La fin du code php indique au visiteur l'origine du problème si celui-ci n'est pas lié à l'adresse, mais à son navigateur... Ca arrive !
if ($result==2) {
echo "<p>L'analyse de l'erreur montre qu'elle est provoqué par l'utilisation du module <b>\"Discuter\"</b> de votre navigateur.</p>\n";
}
if ($result==3) {
echo "<p>L'analyse de l'erreur montre qu'elle est provoquée par l'utilisation de <b>\"DigExt\"</b>, un module Internet Explorer servant à consulter une page hors ligne.</p>\n";
}
if ($result==4) {
echo "<p>L'analyse de l'erreur montre qu'elle est provoquée par votre navigateur, qui est mal configuré pour lire le <b>JavaScript</b> ou le <b>JAVA</b>.</p>\n";
}
}
?>
Enfin, pour finir, les différents boutons vers la page d'accueil et la page précédente.
<br /><form name="boutons">
<table border="0" cellspacing="0" cellpadding="0" width="90%" align="center">
<tr>
<td><center>
<input type="button" name="accueil" alt="Accueil" value="Retour à la page d'accueil" onclick="location.href='/index.php'" />
</center></td>
<td> <center>
<input type="button" name="precedent" alt="Page précédente" value="Retour page précédente" onclick="history.go(-<? echo $history ?>)" />
</center></td>
</tr>
</table>
</form>
Votre script est fini, vous avez maintenant une page d'erreur 404 personnalisée adaptée à votre site. Vous pouvez télécharger le script complet sous forme de fichier texte en cliquant sur ce lien : une erreur 404 personnalisée.
Tux - Ubuntu
pour bien débuter sous linux, Ubuntu est une excellente distribution. Une équipe dynamique présente ici un "how-to" pour bien commencer sous linux sans perdre pieds. Les étapes sont bien présenter et vous maîtriserez plus vite votre OS.
Le système métrique
une présentation du système métrique réalisée dans un but scolaire dans le cadre des TPE (travaux personnels encadrés) en lycée scientifique. Un site bien présenté et plutôt complet sur le sujet.