Questo script è stato creato per una necessità particolare e, a mio avviso, può essere utile a molte persone. Permette di ricevere un avviso via email se uno dei vostri siti non funziona più (il server non risponde, il sito non risponde…).
Per questo, è ovviamente necessario pensare di creare un cron su questo script una volta caricato su un server distinto dagli altri siti (altrimenti, se il server va in crash, lo stesso script non sarà più accessibile…). Questo CRON può essere, ad esempio, di 3 volte al giorno (mattina, mezzogiorno e sera) per rimanere reattivo.
Di seguito la pagina del codice in questione :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | <?php // Mot de passe de sécurité if( $_GET['mdp'] != 'sefUIHGDEjdpzjiOEanf' ) { exit; } $sitealerte = ''; // Fonction de test function testersite($url) { $agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url ); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_VERBOSE,false); curl_setopt($ch, CURLOPT_TIMEOUT, 20); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch,CURLOPT_SSLVERSION,3); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false); $page = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if( $httpcode >= 200 && $httpcode < 300 ) { return true; } else { return false; } } // Sites à vérifier $site[1] = 'http://www.votresite.fr'; $site[2] = 'http://www.autresite.com'; // Emails à notifier $email[1] = 'votremail@gmail.com'; $email[2] = 'emailpro@unsite.fr'; $email[3] = 'encore-un@yahoo.fr'; // Boucle des vérifications for( $i = 1; $i <= count($site); $i++ ) { if(testersite($site[$i])) { echo $site[$i] . ' : Le site fonctionne.<br>'; } else { echo $site[$i] . ' : <strong>Le site ne fonctionne plus !</strong><br>'; $sitealerte = ( empty($sitealerte) ) ? $site[$i] : $sitealerte . "\n" . $site[$i]; } } // Boucle des emails if( !empty($sitealerte) ) { for( $j = 1; $j <= count($email); $j++ ) { mail($email[$j], 'ALERT SITE : Un ou plusieurs sites ne fonctionnent plus !', "Attention, le(s) site(s) Internet ci-dessous ne semble plus fonctionner :\n\n" . $sitealerte . " \n\nCeci est un mail automatique, veuillez ne pas y répondre.", 'From: ALERT SITE <no-reply@monmail.com>'); } } exit; ?> |
La password di sicurezza « sefUIHGDEjdpzjiOEanf » est un exemple; ovviamente dovete modificarla e crearne una diversa. Per fare appel à votre page en CRON, vous devrez penser à inclure ce mot de passe : http://www.votresite.com/script.php?mdp=sefUIHGDEjdpzjiOEanf (esempio)
La lista dei siti e degli indirizzi email può essere più o meno numerosa, a scelta.

Laisser un commentaire