ci sono quasi... più o meno funziona ma ho un dubbio e due problemi. Vi posto ciò che ho realizzato
Codice PHP:
<html>
<head>
<meta http-equiv="refresh" content="10;url=questa_pagina.php" />
<head>
<body>
<?php
if(false == ($Result = file_get_contents("http://sito_da_monitorare.com/")))
{
echo "impossibile eseguire la verifica";
}
else
{
$search="Under costruction";
$risultato_ricerca=strpos($Result, $search);
if($risultato_ricerca)
{
echo "Il sito è chiuso.";
}
else
{
echo "Il sito è aperto.";
if(!file_exists("invio.txt"))
{
include("conn.php");
global $db_host, $db_user, $db_password, $db_database;
$connessione = mysql_connect($db_host,$db_user,$db_password);
$query="select email from iscritti";
$sql=mysql_db_query($db_database,$query,$connessione);
while ($riga=mysql_fetch_array($sql))
{
$email=$riga['email'];
@mail($email, "notifica di apertura", "il sito è aperto");
}
fopen("invio.txt","a");
}
}
}
?>
</p>
</body>
</html>
Il dubbio è: nel momento in cui il sito che voglio monitorare apre lo script manda una mail ma per evitare che invii più di una mail ho gestito il tutto con la condizione if(!file_exists("invio.txt")) e con la funzione fopen("invio.txt","a"). E' corretto? ci sono rischi di invii multipli di mail? ci sono alternative?
Il primo problema è: lo script richiede di essere lanciato da un utente che apre tale pagina e per eseguire il monitoraggio in diretta ho utilizzato un semplice <meta http-equiv="refresh" content="10;url=questa_pagina.php" />.
Accade tuttavia che se sono collegati un numero discreto di utenti si blocchi e compare il messaggio "server too busy etc etc"; Ciò dipende dal fatto che il server che utilizzo in questa fase di test è gratuito? oppure questo script manderebbe qualsiasi server ko?
Il secondo problema è: lo script per funzionare (inviare la mail di notifica) richiede che almeno un utente sia connesso; alla luce del primo problema e di questo secondo è possibile far funzionare lo script in autonomia cioè anche senza utenti su questa pagina?
Se fosse possibile ciò farei nel sito una cosa molto più soft ad esempio
Codice PHP:
if(file_exists("invio.txt"){echo "sito aperto";}
else {echo "sito chiuso";}