Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- echo "\n";
- // Variabile d'ambiente che stabilisce la connessione al database
- $connuri = getenv("DBCONN");
- // Connessione al database
- $conn = pg_connect($connuri);
- if(!$conn)
- {
- echo "Errore di collegamento con il database\n" . pg_last_error();
- }
- else
- {
- // Selezione dei domini dalla tabella 1
- $query = "SELECT dominio FROM domain";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di selezione hostname\n" . pg_last_error();
- }
- else
- {
- $numero = pg_num_rows($result);
- $i = 0;
- $a = 0;
- while($i < $numero)
- {
- $a++;
- echo $a . "° ciclo while";
- $row = pg_fetch_array($result, $i, PGSQL_ASSOC);
- // Salvataggio dei domini nella variabile "dominio" e conseguente estrazione dei record TXT
- $dominio = $row['dominio'];
- $dominio = addslashes($dominio);
- $dns_url = dns_get_record($dominio, DNS_TXT);
- echo "DNS lookup: " . $dominio . "\n";
- $lunghezza = count($dns_url);
- // Parsing dei record TXT in modo da salvare soltanto quelli utili
- for($i=0; $i<$lunghezza;$i++)
- {
- if( $dns_url[$i]["txt"] != ( preg_match( "/^MS*/", $dns_url[$i]["txt"] ) || ( preg_match("/^\"MS*/", $dns_url[$i]["txt"] ) ) ) )
- {
- continue;
- }
- else
- {
- // In alcuni casi, il record potrebbe contenere i doppi apici, andiamoli ad eliminare
- if( preg_match("/^\"/", $dns_url[$i]["txt"] ) )
- {
- $dns_url = str_replace("\"", "", $dns_url[$i]["txt"]);
- echo "\n" . $dns_url . "\n\n";
- }
- else
- {
- // Salvataggio record TXT utili nella variabile "record_txt"
- $record_txt = $dns_url[$i]['txt'];
- $record_txt = addslashes($record_txt);
- // Controllo se il record è vuoto
- $query = "SELECT COUNT(record_txt) AS totale FROM domain WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di controllo record_txt\n" . pg_last_error();
- }
- else
- {
- $result = pg_fetch_array($result);
- $totale = $result['totale'];
- // Se il record è vuoto skippa il processo
- if($totale == 0)
- {
- continue;
- }
- else
- {
- // Se non è vuoto, salva il record su una variabile
- $query = "SELECT record_txt FROM domain WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di controllo record_txt del dominio selezionato\n" . pg_last_error();
- }
- else
- {
- $result = pg_fetch_array($result);
- $check_record = $result['record_txt'];
- if($check_record != $record_txt)
- {
- $data = date("Y-m-d H:i:s");
- $data = addslashes($data);
- // Prima di cambiare lo stato, salvo in una variabile lo stato attuale, in modo da poterlo aggiungere alla tabella log
- $query = "SELECT stato FROM domain WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di selezione del \"Vecchio stato\" dalla tabella domain\n" . pg_last_error();
- }
- else
- {
- $result = pg_fetch_array($result);
- $vecchio_stato = $result['stato'];
- }
- // Se la il record sul database è diverso da quello del dominio, cambia lo stato in "NOTVALIDATED"
- $query = "UPDATE domain SET stato='NOTVALIDATED', record_txt='$record_txt', ultima_modifica='$data' WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di update di stato a 'NOTVALIDATED'\n" . pg_last_error();
- }
- else
- {
- echo "\n" . $dominio . " ha subito un cambiamento ed il suo record txt non matcha con quello presente nel database\n";
- // Seleziona i campi da inserire nella tabella log, dalla tabella domain
- $query = "SELECT customerID AS cid, record_txt, stato WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di selezione cid, record_txt e stato dalla tabella domain\n" . pg_last_error();
- }
- else
- {
- //Salva i campi da inserire nei log
- $result = pg_fetch_array($result);
- $customerID = $result['cid'];
- $customerID = addslashes($customerID);
- $record_txt = $result['record_txt'];
- $record_txt = addslashes($record_txt);
- $nuovo_stato = $result['stato'];
- $nuovo_stato = addslashes($nuovo_stato);
- // Inserisce una riga di log
- $query = "INSERT INTO log(dominio, customerID, descrizione, data, vecchio_stato, nuovo_stato) VALUES('$dominio', '$customerID','$record_txt', '$data', '$vecchio_stato', '$nuovo_stato')";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL per l'inserimento di una riga di log\n" . pg_last_error();
- }
- else
- {
- echo "\nAggiunta con successo una riga di log!\n";
- }
- }
- }
- }
- }
- }
- }
- // Aggiornamento della tabella tabella 1 con inserimento dei record utili
- $query = "UPDATE domain SET record_txt='$record_txt' WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di inserimento dei record txt\n" . pg_last_error();
- }
- else
- {
- echo "\nInserito il record \"" . $record_txt . "\" per il dominio \"" . $dominio . "\"\n";
- }
- // Controllo se il record txt utile estratto esiste già nel database
- $query = "SELECT record_txt FROM domain WHERE record_txt='$record_txt' AND dominio='$dominio'";
- $result = pg_query($conn,$query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di controllo\n" . pg_last_error();
- }
- else
- {
- // Controlla se il record txt utile appartiene effettivamente al record corrispondente al dominio selezionato
- $controllo = pg_num_rows($result);
- if($controllo == 1)
- {
- // Se il record txt utile appartiene effettivamente al record corrispondente al dominio selezionato, seleziona lo stato
- $query = "SELECT stato FROM domain WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di selezione dello stato\n" . pg_last_error();
- }
- else
- {
- // Salva lo stato della tabella 1, corrispondente al dominio selezionato, nella variabile "vecchio stato"
- $result = pg_fetch_assoc($result);
- $vecchio_stato = $result['stato'];
- $vecchio_stato = addslashes($vecchio_stato);
- }
- // Aggiorna la tabella 1 inserendo come stato "VALIDATED" nel campo corrispondente al dominio selezionato
- $query = "UPDATE domain SET stato='VALIDATED' WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di update di validazione\n" . pg_last_error();
- }
- else
- {
- echo "\nAggiornato il dominio \"" . $dominio . "\"\n";
- // Seleziona i campi customerID, record_txt e stato dalla tabella 1 nel record del dominio selezionato
- $query = "SELECT customerID AS cid, record_txt, stato FROM domain WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di selezione dei valori per il log\n" . pg_last_error();
- }
- else
- {
- // Salva i risultati nelle variabili
- $result = pg_fetch_assoc($result);
- $customerID = $result['cid'];
- $customerID = addslashes($customerID);
- $stato = $result['stato'];
- $stato = addslashes($stato);
- $data = date("Y-m-d H:i:s");
- $data = addslashes($data);
- // Aggiorna la tabella 2 inserendo un nuovo record
- $query = "INSERT INTO log (dominio, customerID, descrizione, data, vecchio_stato, nuovo_stato) VALUES('$dominio', '$customerID', '$record_txt', '$data', '$vecchio_stato', '$stato')";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL della registrazione dei log\n" . pg_last_error();
- }
- else
- {
- echo "\nLog registrato con successo\n";
- }
- }
- }
- }
- else
- {
- // Se il record estratto non appartiene al record del dominio selezionato, salva lo stato corrente in una variabile
- $query = "SELECT stato FROM domain WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di selezione dello stato\n" . pg_last_error();
- }
- else
- {
- $result = pg_fetch_array($result);
- $vecchio_stato = $result['stato'];
- }
- // Se il record_txt estratto non appartiene al record del dominio selezionato, aggiorna lo stato del record
- $data = date("Y-m-d H:i:s");
- $data = addslashes($data);
- $query = "UPDATE domain SET stato='NOTVALIDATED', data='$data' WHERE dominio=$dominio";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di update di stato\n" . pg_last_error();
- }
- else
- {
- echo "\nIl dominio " . $dominio . " aveva un record non valido, ed il suo stato è stato cambiato a \"NOTVALIDATED\"";
- // Seleziona i dati da inserire nella tabella log
- $query = "SELECT customerID, record_txt, data, stato FROM domain WHERE dominio='$dominio'";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di selezione campi dalla tabella domain\n" . pg_last_error();
- }
- else
- {
- // Salva i dati da inserire nella tabella log
- $result = pg_fetch_array($result);
- $customerID = $result['customerID'];
- $customerID = addslashes($customerID);
- $record_txt = $result['record_txt'];
- $record_txt = addslashes($record_txt);
- $vecchio_stato = addslashes($vecchio_stato);
- $nuovo_stato = $result['stato'];
- $nuovo_stato = addslashes($nuovo_stato);
- $query = "INSERT INTO log(domain, customerID, descrizione, data, vecchio_stato, nuovo_stato VALUES('$dominio', '$customerID', '$record_txt', '$data', '$vecchio_stato', '$nuovo_stato')";
- $result = pg_query($conn, $query);
- if(!$result)
- {
- echo "\nErrore durante l'esecuzione della query SQL di inserimento della riga di log\n" . pg_last_error();
- }
- else
- {
- echo "\nRiga di log inserita con successo!\n";
- }
- }
- }
- }
- }
- }
- }
- }
- $i++;
- }
- }
- }
- echo "\n";
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement