8710 sujets

Développement web côté serveur, CMS

Bonjour

Mes sites Web ont un fichier Htaccess qui renvoie, parmi d’autres fonctions, à une page 404.php ; cette page m’envoie un mail d’avertissement en cas de fichier absent, une information parfois utile.

Je reçois comme ça chaque matin, ou à peu près, un mail provenant de l’incursion d’un Bot ou d'un autre dans mon site Web principal où il recherche une page qui n’existe pas.

J’ai réalisé que ce mail a un rôle très positif, il fait office de « preuve de vie » de ce site Web, montrant de manière très simple que ce site fonctionne correctement, une assurance certes limitée à ce périmètre technique, sans que j’ai besoin d’y aller voir.

J’ai l’idée maintenant de créer une fonction Php simple qui serait déclenchée automatiquement par le Cron d’un serveur Web, par exemple une fois par jour, et qui provoquerait l’envoi d’un mail 404.

Ma question : quelle action cette fonction Php pourrait-elle réaliser ?

J’ai essayé avec un include() sur un fichier absent sur le site Web concerné mais j’ai à l’exécution des messages « URL file-access is disabled in the server configuration », ce qui ne fait pas très propre.

Merci par avance de vos suggestions.

Francois
Modérateur
francoisch a écrit :
Je reçois comme ça chaque matin, ou à peu près, un mail provenant de l’incursion d’un Bot ou d'un autre dans mon site Web principal où il recherche une page qui n’existe pas.


oulaa je n'aimerais pas recevoir un email pour chaque : user/admin.php utilities/openWindow.js wp-admin/truc, /login.php, /login.asp, /js/libs/]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1 (ceux-là j'en ai plein, et viennent de bots ou de vieux mobiles en haine avec gmap Smiley langue )

Plus sérieusement, pourquoi ne pas appeler une page directement dans le cron?

par exemple:

30 6 * * * curl --silent --compressed  http://monsite.com/bonjourMichouIlEstLheureDeSeReveiller
 
Oui, ouvrir une page sur le site me convient.

Simplement, comment faire ça en Php?

J'ai essayé avec header() mais je n'ai pas de retour.

Merci.

Francois
Avec du curl.
La classe te permet de faire simplement une petite script va visiter l'url que tu lui donnes en paramètre. Tu peut même lui en confier plusieurs via un array histoire de faire la tournée des popotes et ainsi te faire un script "keep alive" qui va tester tout tes sites. Curl te permet même de récupérer le header et/ou le contenu de la page.
Modifié par Hikingyo (02 Dec 2013 - 21:25)
bonjour et merci de ta réponse.

J'étais entre temps parti sur une piste avec if(@strpos(file_get_contents('http://'.$site.'/'), 'Web' ) === FALSE )

Je l'ai installé en fonction que je fais exécuter sur la page d'accueil de 5 de mes sites.

Ca a l'air de bien fonctionner; il me reste à mettre ça sous un Cron.

Y aurait-il un avantage à utiliser curl() plutôt?

Francois
Tout dépend de ce que tu souhaites obtenir comme résultat.
Avec curl, tu peux récupérer uniquement le header, avoir quelques infos utiles. Les possibilité sont multiples car la classe est assez complète.
En fait, cela dépend aussi dans quel sens tu veux que çà marche, que ce soit les sites qui donnent signe de vie, ou que ce soit un site qui vérifie que les autre sont toujours en ligne. Dans le deuxième cas, tu peux pousser le vice à généré un rapport plus ou moins complet et te l'envoyer par mail.
bonjour et merci de ta réponse.

J'envoie seulement une requête à la page d'accueil de 5 de mes sites pour m'assurer que chacune s'ouvre bien.

C'est une planification dans un Cron qui les envoie aux 5 sites, le matin vers 8h.

Ca fonctionne comme ça depuis ce matin et ça correspond bien à ce que je veux faire, du moins pour le moment.

Je retiens ta suggestion basée sur curl() pour le cas où je voudrais faire plus que ça.

Merci de ton aide.

Francois