Liens morts

Signaler
Messages postés
182
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
2 octobre 2012
-
Messages postés
182
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
2 octobre 2012
-
Salut @ tous

je voudrais mettre en place pour certain fichiers en téléchargement à partir de mon site un systeme pour me prévenir des liens morts.
Je dispose dans mon domaine un dossier avec toute les pages des codes d'erreurs: 401 402 403 404 500..
Par exemple un visiteur tombe sur un lien de téléchargement d'un fichier qui ne ce trouve pas sur mon domaine et que ce fichier existe plus. je voudrais me servir de ces pages d'erreurs pour qu'elles m'envoyent un mail directement et me dise de quel fichier il sagi et en meme temp que le visiteur luis il tombe sur une page luis indiquant que le webmaster est prévenu qu'il est tombé sur un lien mort.

ya un moyen simple de faire ce genre de chose ?

7 réponses

Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesud

S'il s'agît d'un autre domain ne vous appartenant pas vous ne pourrez pas car il s'agira des pages d'erreur ( 401 402 403 404 500 ... ) du server en question en non du votre. Donc à moins de dire à votre utilisateur avant de cliquer sur le dit lien de revenir via le back button sur votre site où vous lui proposez un formlaire pour vous dire que tel lien est mort ... Voilà quoi ... Autrement vous ne pouvez pas vous fiez à la variable $_SERVER['HTTP_REFERER']; car certains navigateurs permettent de modifier cette valeur. Vous pouvez cependant vérifier avant l'éxécution du lien, l'existance de la dite ressources via :

<?php
$test_ressource=file('http://www.domain.ltd/ressource.extension');
$test_ressource=count($test_ressource);
if($test_ressource > 1){
header('Location:http://www.domain.ltd/ressource.extension');
}else{
echo 'Le lien est mort, ou la ressource à été déplacé. Un mail vient d'étre envoyé à l'administrateur. Veuillez nous pardonnez pour le désagrément ... etc ...'; // Avec naturellement l'envoi du dit mail ...
}

?>

Cependant cette solution est très gourmande en ressources server donc en dehors d'un Intranet qui soit bien géré, je vous la déconseille vivement ... Par ailleurs s'il s'agît d'un Intranet et que vous optez pour cette solution, je vous conseille d'usez de la commande unix " wget ", via la fonction php " exec " ou " shell_exec " (vérifiez que votre utilisateur web à les droit nécessaire sans quoi vous pouvez les lui donnez via sudoer ) car elle est moins gourmande ...

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón
Messages postés
182
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
2 octobre 2012

Merci de la réponce très rapide et bien précise.
Par contre je saurais pas construire l'envoi du mail en php.

un exemple qui traine dans le coin pour ajouter à ce code source ?
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



si tu veux envoyer un mail, il te faut une page d'erreur perso en PHP



dans un htaccess tu rajoutes ça :



ErrorDocument 404 /erreur.php?erreur=404

ErrorDocument 500 /erreur.php?erreur=500



etc... pour les erreurs que tu souhaites



sur ta page erreur.php tu utilises la fonction mail() et le code d'erreur retourné en GET pour savoir quoi envoyer.



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesud

>> Anthomicro, ... ;-) <<<end_antho

Je suis d'accord avec vous concernant le .htaccess sur la redirection des messages d'erreurs, cependant le thread en question s'adresse, d'après ce que j'ai compris, aux domains distants donc il ne peut espérer un redirect de ErrorDocument sur un server dont-il n'est propriétaire ...

En effet ce que comprend de la personne :

"Je dispose dans mon domaine un dossier avec toute les pages des codes d'erreurs: 401 402 403 404 500.."

Youpi il a un code .htaccess valide !!! du moins on peut le penser ... ;-)

Hors ce que souhaite la personne en question :

"un visiteur tombe sur un lien de téléchargement d'un fichier qui ne ce trouve pas sur mon domaine et que ce fichier existe plus. Hors je souhaiterais me servir de ses pages d'erreurs pour qu'elles m'envoyent un mail directement et me disent de quel fichier il s'agit et en même temp quel visiteur cela concerne-t-il ? Tandis que l'utilasateur final lui il tombe sur une page lui indiquant que le webmaster est prévenu qu'il est tombé sur un lien mort.
." ( Après correction de deux ou trois coquilles ;-) ) ...

Sachant qu'il s'agit d'un domain distant ne lui appertenant pas forcément - d'où ma question : êtes-vous propriétaire du domain distant ? - car sans quoi il n'aura jamais accès au ErrorDocument 404 erreur.php/erreur.php?id=404 ou 500 ( par exemple .. ;-) en tant qu'adminstrateur du dit site ...) puisqu'il n'est pas propiétaire du domain distant ... soit à partir de là il ne peut pas faire de redirection immmédiate ... ;-)

<<end_antho

>> Nestor <<<end_nestor

Concernant l'envoi de mail vous pouvez regarder ceci : http://www.phpcs.com/code.aspx?id=13338
Bien que cela ne sois absolument pas sécurisé cela fonctionne sur la pluspart les architecture.

En ce qui concerne µsoft Windows ... Merci de regardez le fichier php.ini avec la bonne déclaration du server SMTP ...

Un exemple à la con de la librairie fournie à cette address : http://www.phpcs.com/code.aspx?id=13338

<?php
require(simpleemail.php');
$mail = new simplemail;
$mail -> addrecipient($to,$name,$from);
$mail -> addfrom($email_from[mailto:'sjon@,$name ,$name]);
$mail -> addsubject('subject');
$mail -> html ="
<head>
<head>
<style>
TD {font-family:verdana; font-size:11px; cursor:default;}
a {color:#226699; text-decoration:underline;}
a:visited {color:#226699; text-decoration:underline;}
a:hover {color:#226699; text-decoration:underline;}
</style>
</head>

Votre message ...

</html>

PS : Cet exemple n'est pas à prendre en comptes ne serait-ce que par l'absence su <!DOCTYPE ...
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón

HARDWARE : Partie de l'ordinateur qui reçoit les coups quand se plante le software ...

Ce eydar***** mais volé ma signature ...

Slut og en med ...
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Ok je comprends mieux, il veut en gros voir si le lien est mort et
avoir le code de retour de l'erreur distante. Ok pas de problème :-)



Il faudrait analyser les headers retournés par le serveur et les parser à l'aide d'une expression régulière par exemple.

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
182
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
2 octobre 2012

je réexplique mieux:

j'ai un domaine.com et je peux faire toutes opérations possible.
(carte blanche, presque...) Par contre je suis limité à 750Mo d'espace dessus.
Je place uniquement des fichiers vidéo de 100ko à 50Mo
j'ai plusieurs comptes FREE.FR pour héberger mes fichiers.
je me sers aussi de liens ftp des sociétés de création graphique car leurs vidéos elle sont très lourde, entre 400Mo et 700Mo, (en cas ou, pour infos, c'est pas des divx piraté mais des réalisations graphique publicitaire que vous voyez tout les jours à la TV.)

Donc je résume, je souhaite metre en place un systeme qui puisse me prévenir des liens morts (donc des vidéos de 2 sociétés de créations graphique publicitaire) me prévenir donc par mail et afficher en même temp à l'utilisateur final (nous internautes) que le lien de la Pub est mort mais que le webmaster (donc moi) vien d'étre avertis de la cituation et que tout rentrera dans l'ordre dans les plus bref délais...
En plus de tous ca, je voudrais étre avertis (donc par mail) sur quel fichier le téléchargement ne répond pas et de quelle société il sagis. (vue les noms des Pub c'est pas sorcier pour moi de deviner à quel société le fichier appartien...)

Merci de votre aide.