Example de page ERROR.PHP avec formulaire d'email en cas d'erreur interne

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

asiansnakewine
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 10
Inscription: 5 Sep 2006

Example de page ERROR.PHP avec formulaire d'email en cas d'e

Message le Lun Jan 19, 2009 20:29

Example de page ERROR.PHP avec formulaire d'email en cas d'erreur interne du serveur (internal server error)



Bonjour,

Je suis à la recherche d'un script PHP de formulaire d'envoi d'email.

C'est pour installer sur une page ERROR.PHP que le serveur affichera en cas d'erreur interne du serveur (j'aimerais que ce soit un formulaire à remplir pour me signaler l'erreur).

Je sais déjà qu'il faut rajouter cette ligne dans le .htacess:

ErrorDocument 503 /error.php


Mais je n'ai pas encore la page error.php


Merci pour votre aide.

Hartas
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: 12 Nov 2006

Message le Mar Jan 20, 2009 11:08

et pourquoi ne pas mettre dans ton code une petite fonction mail(), pour te le signaler directement ?? L'internaute arrive sur une page qui ne marche pas et en plus tu lui demandes de remplir un formulaire afin de te contacter...il est gentil l'internaute :)

asiansnakewine
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 10
Inscription: 5 Sep 2006

Message le Mar Jan 20, 2009 11:22

Le problème c'est qu'en faisant comme cela je vais recevoir des dizaines d'emails si je ne répare pas de suite, à moins qu'il y ait une possibilité de limiter le nombre d'envoi d'emails automatiques à 1 toutes les demi heures par exemple ?

Connaissez vous un script ?

Merci beaucoup.
Asian-Snake-Wine.com


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Message le Mar Jan 20, 2009 12:50

Tu peux aussi faire une table où tu insères le message d'erreur et la page incriminée, de manière à ne faire qu'un envoi de mail pour chaque couple erreur - page.

kitten13
WRInaute discret
WRInaute discret
 
Messages: 213
Inscription: 30 Avr 2007

Message le Mar Jan 20, 2009 12:54

Slt,

Voici ce que j'utilise :

page error.php

Code: Tout sélectionner
<?php
$email_admin = "ton_mail@gmail.com";

$monsite = "nom_du_site" ; // utile si vous administrez plusieurs sites

$message_titre = "[Erreur 404 " . $monsite . "] " . $_SERVER['REQUEST_URI'] ;

$message_corps = "Erreur 404 sur le site " . $monsite . ".\r\n" .
"Une page demandée n’a pas été trouvée. \r\n" .
"Url de la page : " . $_SERVER['REQUEST_URI'] . "\r\n" .
"Url de provenance : " . $_SERVER['HTTP_REFERER'] . "\r\n" .
"IP du visiteur : " . $_SERVER['REMOTE_ADDR'] . "\r\n" .
"Navigateur : " . $_SERVER['HTTP_USER_AGENT'] . "\r\n" .
"Heure de la requête : " . date('d/m/Y G:i:s') . "\r\n" .
"Contenu brut du tableau global $_SERVER : " . print_r($_SERVER,true)  ;

// Envoi du message
mail($email_admin, $message_titre, $message_corps) ;

// Ci-dessous, affichez votre page 404 sur mesure pour le visiteur.

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title><?php echo $page_title; ?></title>
<base href="<?php echo $script_url; ?>/">

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $langx['charset']; ?>">
      
</head>
<body>
blablabla ...
</body>
</html>



Dans ton hatcess

Code: Tout sélectionner
# Error 404
ErrorDocument 404 /error.php


Voila tout simple

asiansnakewine
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 10
Inscription: 5 Sep 2006

Message le Mar Jan 20, 2009 13:25

kitten13 a écrit:Slt,

Voici ce que j'utilise :

page error.php

Code: Tout sélectionner
<?php
$email_admin = "ton_mail@gmail.com";

$monsite = "nom_du_site" ; // utile si vous administrez plusieurs sites

$message_titre = "[Erreur 404 " . $monsite . "] " . $_SERVER['REQUEST_URI'] ;

$message_corps = "Erreur 404 sur le site " . $monsite . ".\r\n" .
"Une page demandée n’a pas été trouvée. \r\n" .
"Url de la page : " . $_SERVER['REQUEST_URI'] . "\r\n" .
"Url de provenance : " . $_SERVER['HTTP_REFERER'] . "\r\n" .
"IP du visiteur : " . $_SERVER['REMOTE_ADDR'] . "\r\n" .
"Navigateur : " . $_SERVER['HTTP_USER_AGENT'] . "\r\n" .
"Heure de la requête : " . date('d/m/Y G:i:s') . "\r\n" .
"Contenu brut du tableau global $_SERVER : " . print_r($_SERVER,true)  ;

// Envoi du message
mail($email_admin, $message_titre, $message_corps) ;

// Ci-dessous, affichez votre page 404 sur mesure pour le visiteur.

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title><?php echo $page_title; ?></title>
<base href="<?php echo $script_url; ?>/">

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $langx['charset']; ?>">
      
</head>
<body>
blablabla ...
</body>
</html>



Dans ton hatcess

Code: Tout sélectionner
# Error 404
ErrorDocument 404 /error.php


Voila tout simple






Bonjour, est-ce compliqué de rajouter du code à ce script pour limiter l'envoi d'email à 1 toutes les 10 minutes par exemple, car c'est pour un site à fort trafic ?

Je saurais intégrer ce script mais je ne programme pas, donc merci pour votre aide!

kitten13
WRInaute discret
WRInaute discret
 
Messages: 213
Inscription: 30 Avr 2007

Message le Mar Jan 20, 2009 13:42

Il faudrait utiliser une fonction avec cron.

Hartas
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: 12 Nov 2006

Message le Mar Jan 20, 2009 15:00

c'est un peu de la bidouille, mais tu peux stocker une variable à 1 par exemple. Si var=1 AND "ta page d'erreur" => le mail part et tu passes la var à 0. Comme ça il ne part qu'une seul fois.
Ensuite, sois tu as un cron qui recharge ta variable à 1 toute les 15mn par exemple, sois tu le change à la main une fois le problème réglé avec le risque d'oublier...


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Message le Mer Jan 21, 2009 13:56

asiansnakewine a écrit:Je saurais intégrer ce script mais je ne programme pas, donc merci pour votre aide!
quel intérêt alors de recevoir un mel si tu ne sais pas corriger le problème ?

kitten13
WRInaute discret
WRInaute discret
 
Messages: 213
Inscription: 30 Avr 2007

Message le Ven Jan 23, 2009 8:12

Bon je vous mais aussi une autre parti de mon script aussi

alertes e-mail pour les erreurs MySQL

Code: Tout sélectionner

<?php

function mysql_requete($requete, $msg_erreur = "Erreur indéfinie")
{
    $resultat = mysql_query($requete);
    if (mysql_error())
    {
        $message_destinataire = "admin@monsite.com";
        $message_titre = "Erreur MySQL sur le script " . $_SERVER['REQUEST_URI'] ;
        $message_corps = "Une erreur MySQL s'est produite sur le script " . $_SERVER['REQUEST_URI'] . "\r\n" .
            "Nature de l'erreur :\r\n" .
            mysql_error() . "\r\n" .
            "----------------------------------------------\r\n" .
            "Requête SQL : \r\n" .
            $requete . "\r\n" .
            "----------------------------------------------\r\n" .
            "Variables d'environnement SERVER : \r\n" .
            print_r($_SERVER, true) . "\r\n" .
            "----------------------------------------------\r\n" .
            "Variables d'environnement REQUEST : \r\n" .
            print_r($_REQUEST, true) . "\r\n"
            "----------------------------------------------\r\n" .
            "Variables d'environnement COOKIE : \r\n" .
            print_r($_COOKIE, true) . "\r\n"
            "----------------------------------------------\r\n" .
            "Variables d'environnement SESSION : \r\n" .
            print_r($_SESSION, true) . "\r\n";
;

        mail($message_destinataire, $message_titre, $message_corps);
    }
    return $resultat;
}


?>





Voila tout simple, maintenant dormez sur vos deux oreilles :wink:

kitten13
WRInaute discret
WRInaute discret
 
Messages: 213
Inscription: 30 Avr 2007

Re: Example de page ERROR.PHP avec formulaire d'email en cas d'e

Message le Dim Jan 25, 2009 18:57

Voici le code modifié est améliorer :

Dans le .htaccess :

Code: Tout sélectionner
ErrorDocument 400 /erreur.php
ErrorDocument 401 /erreur.php
ErrorDocument 403 /erreur.php
ErrorDocument 404 /erreur.php
ErrorDocument 410 /erreur.php
ErrorDocument 500 /erreur.php


Dans page erreur.php :

[code]switch ($_SERVER['REDIRECT_STATUS']) {
case 401:
$mess_erreur = 'Accès à la ressource refusé';
break;
case 403:
$mess_erreur = 'Refus de traitement de la requête';
break;
case 404:
$mess_erreur = 'Document non trouvé';
$logoErreur = '404';
break;
case 410:
$mess_erreur = 'La ressource est indisponible et aucune adresse de redirection n\'est connue';
}

if (!eregi('(cltreq.asp|owssvr.dll|_vti)', $_SERVER['REQUEST_URI']) && $_SERVER['REDIRECT_STATUS'] != 410 ) {
if (empty($_SERVER['HTTP_REFERER'])) {
$provenance = 'Connexion directe';
}
else {
$provenance = $_SERVER['HTTP_REFERER'];
}

$mess = 'Erreur internet '.$_SERVER['REDIRECT_STATUS']."\n\r";
$mess .= 'Provenance : '.$provenance."\n\r";
$mess .= 'Url demandée : '.$_SERVER['REQUEST_URI']."\n\r";
$mess .= 'Navigateur utilisé : '.$_SERVER['HTTP_USER_AGENT']."\n\r";
$mess .= 'Nom de Domaine : '.gethostbyaddr($_SERVER['REMOTE_ADDR'])."\n\r";
$mess .= 'IP du visiteur : '.$_SERVER['REMOTE_ADDR'];
$to = email@levotre.com;
$subject = 'Erreur internet '.$_SERVER['REDIRECT_STATUS'];
$message = $mess;
$headers = 'From: noreply@levotre.com'."\r\n".'Reply-To: noreply@levotre.com'."\r\n";

mail($to, $subject, $message, $headers);
}[/code

Bien plus simple et propre que mon bout de code fournis plus haut, merci à l'auteur original.

La source : http://www.webrankinfo.com/forums/viewtopic_61084.htm


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Hello, Google mail

  • Calcul du taux de liens vers des pages internes
    Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités