Mostrare indirizzo ip di chi registra un appuntamento

di il
19 risposte

Mostrare indirizzo ip di chi registra un appuntamento

Buongiorno a tutti,
ho un codice php che mi stampa una colonna con all'interno la data e l'ora in cui un determinato appuntamento è stato registato in un database mysql

questo il codice, che fa esattamente il suo lavoro
<td style="color:yellow; background-color:black;"><b><?php echo strftime("Ore " . '%X <br> %d/%m/%y', date($data_ins));?></td>
vorrei poter aggiungere anche l'indirizzo ip del pc che ha registrato l'appuntamento,

19 Risposte

  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Ciao buonasera,
    $ip = $_SERVER['REMOTE_ADDR'];
    non sempre è la soluzione ideale per ricavare l'indirizzo IP del client.
    Utilizza questa funzione:
    
    function ClientIP() {
        $ipaddress = '';
        if (getenv('HTTP_CLIENT_IP'))
            $ipaddress = getenv('HTTP_CLIENT_IP');
        else if(getenv('HTTP_X_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
        else if(getenv('HTTP_X_FORWARDED'))
            $ipaddress = getenv('HTTP_X_FORWARDED');
        else if(getenv('HTTP_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_FORWARDED_FOR');
        else if(getenv('HTTP_FORWARDED'))
            $ipaddress = getenv('HTTP_FORWARDED');
        else if(getenv('REMOTE_ADDR'))
            $ipaddress = getenv('REMOTE_ADDR');
        else
            $ipaddress = 'UNKNOWN';
        return $ipaddress;
    }
    
    Per richiamarla basta un
    <?php echo ClientIP(); oppure $ip = ClientIP();?>
    Nel tuo caso:
    <td style="color:yellow; background-color:black;"><b><?php echo strftime("Ore " . '%X <br> %d/%m/%y', date($data_ins));?></b><br><?php echo ClientIP();?></td>
    
    A presto!
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Ciao tatino,
    anzitutto grazie per la risposta, ma ho notato che mostra su tutte le righe, non l'indirizzo ip del pc che registra l'appuntamento, ma mostra l'indirizzo ip del pc che effettua l'interrogazione degli appuntamenti.

    Secondo me dovrei implementare una funzione che in fase di registrazione degli appuntamenti recuperi l'ip del pc che sta effettuando la registrazione e lo inserisce nella tabella appuntamenti del database mysql nella colonna "ipadd" che ho predisposto.
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    La funzione mostra l'ip di chi sta visitando la pagina oppure esegue il codice;
    Dovresti registrare la variabile su database e poi fare l'echo sul campo preso dal Db.
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    tatino ha scritto:


    La funzione mostra l'ip di chi sta visitando la pagina oppure esegue il codice;
    Dovresti registrare la variabile su database e poi fare l'echo sul campo preso dal Db.
    Ho provato inserendo subito dopo l'apertura del codice php la funzione ClientIP da te suggerita,
    ho poi modificato la query di insert in questo modo, ma non viene registrato nulla
    $sq1 = "INSERT INTO appuntamenti (id_app, cliente, gestore, veicolo, data, ora, tlav, stato_pren, tipo_pren, tipo_lavorazione, telefono, email, note, ipadd) VALUES (NULL, '$cliente', '$gestore', '$veicolo', STR_TO_DATE('$data', '%d/%m/%Y'), '$ora', '$tlav', '$stato_pren', '$tipo_pren', '$tipo_lavorazione', '$telefono','$email', '$note', '$ipaddress')";

    Qua riporto il codice completo
    
    <?php
    function ClientIP() {
        $ipaddress = '';
        if (getenv('HTTP_CLIENT_IP'))
            $ipaddress = getenv('HTTP_CLIENT_IP');
        else if(getenv('HTTP_X_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
        else if(getenv('HTTP_X_FORWARDED'))
            $ipaddress = getenv('HTTP_X_FORWARDED');
        else if(getenv('HTTP_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_FORWARDED_FOR');
        else if(getenv('HTTP_FORWARDED'))
            $ipaddress = getenv('HTTP_FORWARDED');
        else if(getenv('REMOTE_ADDR'))
            $ipaddress = getenv('REMOTE_ADDR');
        else
            $ipaddress = 'UNKNOWN';
        return $ipaddress;
    }
    
    if (isset($_POST['submit'])) {
    
    /* RECUPERO I DATI DAL FORM INSERIMENTO COMMESSA */
    $veicolo = filter_input(INPUT_POST, 'veicolo', FILTER_SANITIZE_STRING);
    $cliente = filter_input(INPUT_POST, 'cliente', FILTER_SANITIZE_STRING);
    $telefono = filter_input(INPUT_POST, 'telefono', FILTER_SANITIZE_STRING);
    $tlav = filter_input(INPUT_POST, 'tlav', FILTER_SANITIZE_STRING);
    $note = filter_input(INPUT_POST, 'note', FILTER_SANITIZE_STRING);
    
    
    if(isset($_POST['data'])){$data = mysqli_real_escape_string($mysqli, $_POST['data']);}else{$data ="";}
    if(isset($_POST['ora'])){$ora = mysqli_real_escape_string($mysqli, $_POST['ora']);}else{$ora ="";}
    if(isset($_POST['gestore'])){$gestore = mysqli_real_escape_string($mysqli, $_POST['gestore']);}else{$gestore ="";}
    if(isset($_POST['tipo_pren'])){$tipo_pren = mysqli_real_escape_string($mysqli, $_POST['tipo_pren']);}else{$tipo_pren ="";}
    if(isset($_POST['stato_pren'])){$stato_pren = mysqli_real_escape_string($mysqli, $_POST['stato_pren']);}else{$stato_pren ="";}
    if(isset($_POST['tipo_lavorazione'])){$tipo_lavorazione = mysqli_real_escape_string($mysqli, $_POST['tipo_lavorazione']);}else{$tipo_lavorazione ="";}
    if(isset($_POST['tlav'])){$tlav = mysqli_real_escape_string($mysqli, $_POST['tlav']);}else{$tlav ="";}
    if(isset($_POST['email'])){$email = mysqli_real_escape_string($mysqli, $_POST['email']);}else{$email ="";}
    
    /* SETTO I MAIUSCOLI */
    $veicolo = strtoupper($veicolo);
    $cliente = strtoupper($cliente);
    $note = strtoupper($note);
    
    /*EVITO LA STAMPA DEL CARATTERE RN*/
    $note = trim(str_replace("\r\n",' ', $note));
    
    /* FILTRO LE ALTRE VARIABILI */
    $data = trim(strip_tags(stripslashes($data)));
    $ora = trim(strip_tags(stripslashes($ora)));
    $telefono = trim(strip_tags(stripslashes($telefono)));
    $gestore = trim(strip_tags(stripslashes(strtoupper($gestore))));
    $tipo_pren = trim(strip_tags(stripslashes(strtoupper($tipo_pren))));
    $stato_pren = trim(strip_tags(stripslashes(strtoupper($stato_pren))));
    $tipo_lavorazione = trim(strip_tags(stripslashes(strtoupper($tipo_lavorazione))));
    $tlav = trim(strip_tags(stripslashes(strtoupper($tlav))));
    $email = trim(strip_tags(stripslashes(strtoupper($email))));
    /* FINE FILTRI e CONVERSIONI SULLE VARIABILI POST */
    
    /* QUERY DI INSERIMENTO SENZA UPPER, L'UPPER E' DEMANDATO AL COMANDO FOREACH */
    $sq1 = "INSERT INTO appuntamenti (id_app, cliente, gestore, veicolo, data, ora, tlav, stato_pren, tipo_pren, tipo_lavorazione, telefono, email, note, ipadd) VALUES (NULL, '$cliente', '$gestore', '$veicolo', STR_TO_DATE('$data', '%d/%m/%Y'), '$ora', '$tlav', '$stato_pren', '$tipo_pren', '$tipo_lavorazione', '$telefono','$email', '$note', '$ipaddress')";
    
    //INSERISCO TUTTO IN UNA VARIABILE CHE CHIAMO rs1
    $rs1 = $mysqli->query($sq1);
    //var_dump ($sq1);
    //exit;
    
    if (!$rs1) {
    echo "<p style='margin-top: 40px;text-align:center;'>Ho trovato un errore nell'esecuzione della <b>QUERY</b></p>";
    die("Errore nella query $sq1: " . mysqli_error());
    
    }else{
    
    /* Redirect alla pagina principale */
    $messaggio = "<div class='success'>Appuntamento registrato con successo! Attendi..</div>";
    echo "<meta http-equiv='refresh' content='2;url=index.php?page=lista_appuntamenti_oggi&tipo=tutti&data=oggi'>";
    
     }
    }
    
    ?>
    
    <?php echo $messaggio; ?>
    
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Il problema è che nella query di inserimento indichi $ipaddress che essendo dichiarato in funzione non è compreso.
    dovresti dichiararla nel corpo principale
    $ipaddress = ClientIP();
    Fammi sapere!
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    tatino ha scritto:


    Il problema è che nella query di inserimento indichi $ipaddress che essendo dichiarato in funzione non è compreso.
    dovresti dichiararla nel corpo principale
    $ipaddress = ClientIP();
    Fammi sapere!
    Buongiorno ti ringrazio tanto per il supporto che mi stai fornendo, ma purtroppo la query non effettua l'insert dei dati nel db, naturalmente prima della modifica del codice tutto funzionava perfettamente, ora io non sono un grande esperto, anzi per niente esperto e pertanto non riesco ad effettuare il debug del codice, ma posso assicurarti che la query non restituisce nessun errore .

    Ti riposto il codice riscritto
    
    <?php
    function ClientIP() {
        $ipaddress = '';
        if (getenv('HTTP_CLIENT_IP'))
            $ipaddress = getenv('HTTP_CLIENT_IP');
        else if(getenv('HTTP_X_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
        else if(getenv('HTTP_X_FORWARDED'))
            $ipaddress = getenv('HTTP_X_FORWARDED');
        else if(getenv('HTTP_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_FORWARDED_FOR');
        else if(getenv('HTTP_FORWARDED'))
            $ipaddress = getenv('HTTP_FORWARDED');
        else if(getenv('REMOTE_ADDR'))
            $ipaddress = getenv('REMOTE_ADDR');
        else
            $ipaddress = 'UNKNOWN';
        return $ipaddress;
    }
    
    if (isset($_POST['submit'])) {
    
    /* RECUPERO I DATI DAL FORM INSERIMENTO COMMESSA */
    $veicolo = filter_input(INPUT_POST, 'veicolo', FILTER_SANITIZE_STRING);
    $cliente = filter_input(INPUT_POST, 'cliente', FILTER_SANITIZE_STRING);
    $telefono = filter_input(INPUT_POST, 'telefono', FILTER_SANITIZE_STRING);
    $tlav = filter_input(INPUT_POST, 'tlav', FILTER_SANITIZE_STRING);
    $note = filter_input(INPUT_POST, 'note', FILTER_SANITIZE_STRING);
    
    
    if(isset($_POST['data'])){$data = mysqli_real_escape_string($mysqli, $_POST['data']);}else{$data ="";}
    if(isset($_POST['ora'])){$ora = mysqli_real_escape_string($mysqli, $_POST['ora']);}else{$ora ="";}
    if(isset($_POST['gestore'])){$gestore = mysqli_real_escape_string($mysqli, $_POST['gestore']);}else{$gestore ="";}
    if(isset($_POST['tipo_pren'])){$tipo_pren = mysqli_real_escape_string($mysqli, $_POST['tipo_pren']);}else{$tipo_pren ="";}
    if(isset($_POST['stato_pren'])){$stato_pren = mysqli_real_escape_string($mysqli, $_POST['stato_pren']);}else{$stato_pren ="";}
    if(isset($_POST['tipo_lavorazione'])){$tipo_lavorazione = mysqli_real_escape_string($mysqli, $_POST['tipo_lavorazione']);}else{$tipo_lavorazione ="";}
    if(isset($_POST['tlav'])){$tlav = mysqli_real_escape_string($mysqli, $_POST['tlav']);}else{$tlav ="";}
    if(isset($_POST['email'])){$email = mysqli_real_escape_string($mysqli, $_POST['email']);}else{$email ="";}
    
    /* SETTO I MAIUSCOLI */
    $veicolo = strtoupper($veicolo);
    $cliente = strtoupper($cliente);
    $note = strtoupper($note);
    
    /*EVITO LA STAMPA DEL CARATTERE RN*/
    $note = trim(str_replace("\r\n",' ', $note));
    
    /* FILTRO LE ALTRE VARIABILI */
    $data = trim(strip_tags(stripslashes($data)));
    $ora = trim(strip_tags(stripslashes($ora)));
    $telefono = trim(strip_tags(stripslashes($telefono)));
    $gestore = trim(strip_tags(stripslashes(strtoupper($gestore))));
    $tipo_pren = trim(strip_tags(stripslashes(strtoupper($tipo_pren))));
    $stato_pren = trim(strip_tags(stripslashes(strtoupper($stato_pren))));
    $tipo_lavorazione = trim(strip_tags(stripslashes(strtoupper($tipo_lavorazione))));
    $tlav = trim(strip_tags(stripslashes(strtoupper($tlav))));
    $email = trim(strip_tags(stripslashes(strtoupper($email))));
    /* FINE FILTRI e CONVERSIONI SULLE VARIABILI POST */
    
    $ipaddress = ClientIP();
    
    /* QUERY DI INSERIMENTO SENZA UPPER, L'UPPER E' DEMANDATO AL COMANDO FOREACH */
    $sq1 = "INSERT INTO appuntamenti (id_app, cliente, gestore, veicolo, data, ora, tlav, stato_pren, tipo_pren, tipo_lavorazione, telefono, email, note, ipadd) VALUES (NULL, '$cliente', '$gestore', '$veicolo', STR_TO_DATE('$data', '%d/%m/%Y'), '$ora', '$tlav', '$stato_pren', '$tipo_pren', '$tipo_lavorazione', '$telefono','$email', '$note', '$ipaddress')";
    
    //INSERISCO TUTTO IN UNA VARIABILE CHE CHIAMO rs1
    $rs1 = $mysqli->query($sq1);
    //var_dump ($sq1);
    //exit;
    
    if (!$rs1) {
    echo "<p style='margin-top: 40px;text-align:center;'>Ho trovato un errore nell'esecuzione della <b>QUERY</b></p>";
    die("Errore nella query $sq1: " . mysqli_error());
    
    }else{
    
    /* Redirect alla pagina principale */
    $messaggio = "<div class='success'>Appuntamento registrato con successo! Attendi..</div>";
    echo "<meta http-equiv='refresh' content='2;url=index.php?page=lista_appuntamenti_oggi&tipo=tutti&data=oggi'>";
    
     }
    }
    
    ?>
    
    <?php echo $messaggio; ?>
    
    E questo è il risultato dopo l'insert (come vedi nessun campo risulta valorizzato)
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Buongiorno,
    figurati è un piacere essere di aiuto.

    Andiamo per ordine nella query (tralascio il resto perchè da come ho capito funzionava):
    - Se il campo "id_app" è una chiave primaria auto incrementante non c'è bisogno di inserirla nella query.
    INSERT INTO appuntamenti (cliente, gestore, veicolo, data, ora, tlav, stato_pren, tipo_pren, tipo_lavorazione, telefono, email, note, ipadd) VALUES ('$cliente', '$gestore', '$veicolo', STR_TO_DATE('$data', '%d/%m/%Y'), '$ora', '$tlav', '$stato_pren', '$tipo_pren', '$tipo_lavorazione', '$telefono','$email', '$note', '$ipaddress')";
    -Se devi convertire una data devi usare DATE_FORMAT al posto di STR_TO_DATE quindi:
    INSERT INTO appuntamenti (cliente, gestore, veicolo, data, ora, tlav, stato_pren, tipo_pren, tipo_lavorazione, telefono, email, note, ipadd) VALUES ('$cliente', '$gestore', '$veicolo', DATE_FORMAT('$data', '%d/%m/%Y'), '$ora', '$tlav', '$stato_pren', '$tipo_pren', '$tipo_lavorazione', '$telefono','$email', '$note', '$ipaddress')";
    Per capire meglio eventuali errori di query che ti genera fai il var_dump di $rs1
    var_dump($rs1)
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Allora vado per ordine:
    1) per il momento per non stravolgere troppo il codice e per lavorare step by step ho tralasciato l'eliminazione dell'id_app e date_format
    2) eseguendo il var_dump($rs1) il risultato della query è perfetto, il problema è che il reale inserimento non avviene

    Risultato del var_dump
    
    string(404) "INSERT INTO appuntamenti (id_app, cliente, gestore, veicolo, data, ora, tlav, stato_pren, tipo_pren, tipo_lavorazione, telefono, email, note, ipadd) VALUES (NULL, 'QUA IL NOME DEL CLIENTE', 'NESSUNO', 'QUA IL VEICOLO', STR_TO_DATE('22/07/2020', '%d/%m/%Y'), '09:00:00', '90', 'ATTESA ACCETTAZIONE', 'PRIVATO', 'MECCANICA', '3331231245','TEST@EMAIL.IT', 'QUESTO IL LAMENTATO DEL CLIENTE', '192.168.10.17')" 
    
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Andando per esclusione il problema te lo genera da quando hai inserito il campo ipadd?
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Allora sto eseguendo un pò di debug e le informazioni da te fornite funzionano e posso affermarlo con certezza perchè nel database adesso mi ritrovo correttamente valorizzata anche la riga con l'indirizzo ip, il problema a quanto pare risiede nella pagina che deve mostrare l'appuntamento appena inserito, in questo caso la pagina in questione è
    
    /* Redirect alla pagina principale */
    $messaggio = "<div class='success'>Appuntamento registrato con successo! Attendi..</div>";
    echo "<meta http-equiv='refresh' content='2;url=index.php?page=lista_appuntamenti_oggi&tipo=tutti&data=oggi'>";
    
    Il problema a quanto pare risiede proprio in questa pagien
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Allora, ho sistemato la parte che permette di mostrare tutto l'elenco degli appuntamenti.
    Adesso il problema risiede nella riga
    <td style="color:yellow; background-color:black;"><b><?php echo strftime("Ore " . '%X <br> %d/%m/%y', date($data_ins));?></b><br><?php echo $ipaddress;?></td> <!--Mando a capo Data e Ora-->
    in sostanza non riesco a recuperare dal database l'indirizzo ip del pc che ha inserito l'appuntamento e mostrare tale indirizzo sotto la data

  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Mi descrivi come estrai i dati dal db?
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Certo, faccio di più, ti posto il codice
    
    <?php
    date_default_timezone_set('Europe/Rome');
    require_once('function/date_day.php');
    
    $numero_operai=4;
    $oggi = date('Y-m-d');
    $totale=0;
    $orar=" ore <br>";
    $minuti=" minuti";;
    $tipo='UNDEF';
    $cliente='UNDEF';
    $where='';
    if(isset($_GET['tipo']))$tipo = trim(strip_tags(stripslashes($_GET['tipo'])));
    else echo 'errore';
    if(isset($_GET['cliente']))$cliente = trim(strip_tags(stripslashes($_GET['cliente'])));
    
    if ($tipo == "tutti")
    {
        $where = "WHERE data = '$oggi'";
    
    }elseif ($tipo == "accettazione" && $cliente == "") {
        $where = "WHERE data = '$oggi' AND stato_pren = 'ATTESA ACCETTAZIONE' ";
    
    }elseif ($tipo == "lavorazione" && $cliente == "") {
        $where = "WHERE data = '$oggi' AND stato_pren = 'LAVORAZIONE' ";
    
    }elseif ($tipo == "terminato" && $cliente == "") {
        $where = "WHERE data = '$oggi' AND stato_pren = 'TERMINATO' ";
    
    }elseif ($tipo == "accettazione" && $cliente == "privato") {
        $where = "WHERE data = '$oggi' AND stato_pren = 'ATTESA ACCETTAZIONE' AND tipo_pren = 'PRIVATO'";
    
    }elseif ($tipo == "lavorazione" && $cliente == "privato") {
        $where = "WHERE data = '$oggi' AND stato_pren = 'LAVORAZIONE' AND tipo_pren = 'PRIVATO'";
    
    }elseif ($tipo == "terminato" && $cliente == "privato") {
        $where = "WHERE data = '$oggi' AND stato_pren = 'TERMINATO' AND tipo_pren = 'PRIVATO'";
    
    }elseif ($tipo == "accettazione" && $cliente == "noleggio") {
        $where = "WHERE data = '$oggi' AND stato_pren = 'ATTESA ACCETTAZIONE' AND tipo_pren = 'NOLEGGIO'";
    
    }elseif ($tipo == "lavorazione" && $cliente == "noleggio") {
        $where = "WHERE data = '$oggi' AND stato_pren = 'LAVORAZIONE' AND tipo_pren = 'NOLEGGIO'";
    
    }elseif ($tipo == "terminato" && $cliente == "noleggio") {
        $where = "WHERE data = '$oggi' AND stato_pren = 'TERMINATO' AND tipo_pren = 'NOLEGGIO'";
    
    }elseif ($tipo == "tutti" && $data == "oggi") {
        $where = "WHERE data = '$oggi' ";
    }
    
    $sql = "SELECT * FROM appuntamenti $where ORDER BY ora ASC";
    $res = $mysqli->query($sql);
    $count = mysqli_num_rows($res);
    
    if ($count == 0) {
    
    echo "<div class = 'container-ricerca-nulla'>";
    echo "<div class ='row'><p class='btn btn-danger center-button'>Nessun appuntamento presente</p></div>";
    echo "<br>";
    echo "<div class ='row'><p class='btn btn-success center-button'><a href='index.php?page=inserisci_appuntamento'><b>CLICCA E INSERISCI NUOVO APPUNTAMENTO</b></a></p></div>";
    echo "</div>";
    
    }else{
    echo "<div class ='container-appuntamento'>";
    echo "<table class='table table-striped table-responsive'>";
    echo "<tr>";
    echo "<th style='color:blue' >Registrato<br>nel sistema</th>";	// Riga modificata 17-12-2019 per valorizzare Data Inserimento
    echo "<th style='color:green'>Data <br>Appunt.</th>";
    echo "<th style='color:green'>Ora <br>Appunt.</th>";
    echo "<th style='color:green;text-align:left;'>Cliente</th>"; // Riga modificata 26-11-2019 per allineare a sx il testo nel campo Cliente
    echo "<th style='color:green'>Tempi lavorazione<br>previsti</th>";
    echo "<th style='color:green'>Telefono</th>";
    echo "<th style='color:green'>Gestore</th>";
    echo "<th style='color:green'>Veicolo</th>";
    echo "<th style='color:green'>Tipo <br>Prenotazione</th>";
    echo "<th style='color:green'>Tipo <br>Lavorazione</th>";
    echo "<th style='color:green'>Stato <br>Prenotazione</th>";
    echo "<th style='color:green'>Note</th>";
    echo "<th>Aggiorna</th>";
    echo "<th>Stampa</th>";
    echo "</tr>";
    ?>
    
    <?php
    date_default_timezone_set('Europe/Rome');
    $today = date("Y-m-d");
    
    $sq1 = "SELECT * FROM appuntamenti WHERE data = '$today' AND tipo_pren = 'PRIVATO' ORDER BY id_app ASC";
    $rs1 = $mysqli->query($sq1);
    $cnt1 = mysqli_num_rows($rs1);
    
    $sq2 = "SELECT * FROM appuntamenti WHERE data = '$today' AND tipo_pren = 'NOLEGGIO' ORDER BY id_app ASC";
    $rs2 = $mysqli->query($sq2);
    $cnt2 = mysqli_num_rows($rs2);
    
    $sq3 = "SELECT * FROM appuntamenti WHERE data = '$today' AND tlav = 0 ORDER BY id_app ASC";
    $rs3 = $mysqli->query($sq3);
    $cnt3 = mysqli_num_rows($rs3);
    
    ?>
    
    <div class = "container-menu-superiore">
    	<div class ="row">
    
    		<div class="col-sm-3">
    			<div class="alert alert-success alert-dismissible" role="alert">
    			Ciao questa la tua agenda di oggi !
    			</div>
    		</div>
    
    		<div class="col-sm-3">
    		<h3><span class="badge badge-primary"><?= $cnt1 ?> app. privati</span></h3>
    		</div>
    
    		<div class="col-sm-3">
    		<h3><span class="badge badge-success"><?= $cnt2 ?> app. noleggio</span></h3>
    		</div>
    
    		<div class="col-sm-3">
    		<h3><span class="badge badge-danger">di cui <?= $cnt3 ?> app. senza tempi</span></h3>
    		</div>
    
    	</div>
    </div>
    
    <div class = "container-menu-superiore">
    	<div class ="row">
    
    		<div class="col-sm-3">
    			<a class="btn btn-outline-success" href="index.php?page=inserisci_appuntamento" role="button">Nuovo Appuntamento</a>
    		</div>
    
    		<div class="col-sm-3">
    			<a class="btn btn-outline-success" href="index.php?page=ricerca_commessa" role="button">Ricerca Commessa</a>
    		</div>
    		
    		<div class="col-sm-3">
    			<a class="btn btn-outline-success" href="privacy/privacy.pdf" target="_blank" role="button">Stampa Privacy</a>
    		</div>
    		
    		<div class="col-sm-3">
    			<button onclick="window.location.reload();" class="btn btn-outline-warning">Aggiorna la pagina</button>
    		</div>
    	</div>
    </div>
    
    <?php
    
    while ($row = $res->fetch_array(MYSQLI_ASSOC)) {
    $id_app = mysqli_real_escape_string($mysqli, $row['id_app']);
    $cliente = mysqli_real_escape_string($mysqli, $row['cliente']);
    $data = mysqli_real_escape_string($mysqli, $row['data']);
    $ora = mysqli_real_escape_string($mysqli, $row['ora']);
    $gestore = mysqli_real_escape_string($mysqli, $row['gestore']);
    $veicolo = mysqli_real_escape_string($mysqli, $row['veicolo']);
    $tlav = mysqli_real_escape_string($mysqli, $row['tlav']);
    $stato_pren = mysqli_real_escape_string($mysqli, $row['stato_pren']);
    $tipo_pren = mysqli_real_escape_string($mysqli, $row['tipo_pren']);
    $tipo_lavorazione = mysqli_real_escape_string($mysqli, $row['tipo_lavorazione']);
    $telefono = mysqli_real_escape_string($mysqli, $row['telefono']);
    $note = mysqli_real_escape_string($mysqli, $row['note']);
    $data_ins = mysqli_real_escape_string($mysqli, $row['data_ins']);
    $ipaddress = mysqli_real_escape_string($mysqli, $row['ipadd']);
    
    
    /* FILTRI e CONVERSIONI SULLE VARIABILI POST */
    $cliente = trim(strip_tags(stripslashes($cliente)));
    $veicolo = trim(strip_tags(stripslashes($veicolo)));
    $note = str_replace('\r\n' , '<br>', $note);
    $note = stripslashes($note);
    $note = wordwrap($note,32,"<br>"); //MANDO A CAPO OGNI 32 CARATTERI
    $data = strtotime($data);
    $data = date('d/m/Y', $data);
    
    $data_ins = strtotime($data_ins); // DEDINISCO UNA VARIBILE PER CONTENERE LA DATA INSERIMENTO CHE E'IN FORMATO UNIX TIMESTAMP
    
    
    /* FINE FILTRI e CONVERSIONI SULLE VARIABILI POST */
    
    if ($stato_pren == 'ATTESA ACCETTAZIONE') { $classe = 'table-danger-rs'; }
    if ($stato_pren == 'LAVORAZIONE') { $classe = 'table-warning-rs'; }
    if ($stato_pren == 'TERMINATO') { $classe = 'table-success-rs'; }
    if ($stato_pren == 'MAI ESEGUITO') { $classe = 'table-danger-maieseguito'; }
    
    if ($tipo_lavorazione == 'MECCANICA') { $lav = 'table-warning-mec'; }
    if ($tipo_lavorazione == 'CARROZZERIA') { $lav = 'table-warning-car'; }
    if ($tipo_lavorazione == 'PNEUMATICI') { $lav = 'table-warning-pneus'; }
    
    if ($tipo_pren == 'NOLEGGIO') { $tnol = 'tip-pren-noleggio'; $stylecliente = 'tip-pren-noleggio'; }
    if ($tipo_pren == 'PRIVATO') { $tnol  = 'tip-pren-privato'; $stylecliente = 'tip-pren-privato';}
    ?>
    
    <?php
    $tempo = $tlav;  // tempo in minuti
    $ore = floor($tempo / 60);
    $minuto = $tempo % 60;
    //echo "$ore:$minuto";
    ?>
    
    <tr>
    <td style="color:yellow; background-color:black;"><b><?php echo strftime("Ore " . '%X <br> %d/%m/%y', date($data_ins));?></b><br><?php echo $ipaddress;?></td> <!--Mando a capo Data e Ora-->
    <td><b><?php echo data_it($data); ?></b></td>
    <td><?php echo $ora; ?></td>
    <td class='<?= $stylecliente; ?>'><?php echo $cliente; ?></td>
    <td class='<?= $tlavcss='tlavcss'; ?>'><?php echo ($tlav == 0 ? "N.D" : $ore. "".$orar. " ".$minuto. "" .$minuti); ?></td>
    <td><?php echo $telefono; ?></td>
    <td><?php echo $gestore; ?></td>
    <td><?php echo $veicolo; ?></td>
    <td class='<?= $tnol; ?>'><?php echo $tipo_pren; ?></td>
    <td class='<?= $lav; ?>'><?php echo $tipo_lavorazione; ?></td>
    <td class='<?= $classe; ?>'><? echo $stato_pren; ?></td>
    <td><?php echo $note; ?></td>
    <!--<td><?php //echo "<a href='index.php?page=inserisci_appuntamento' target='_blank'><img src='images/add_32.png' alt=''></a>"; ?></td>-->
    <td><?php echo "<a href='index.php?page=aggiorna_appuntamento&id_app=$id_app' target='_blank'><img src='images/edit.png' alt=''></a>"; ?></td>
    <td><?php echo "<a href='pdf_appuntamento.php?id_app=$id_app' target='_blank'><img src='images/print.png' alt='Stampa'></a>"; ?></td>
    <!--td><?php //echo "<a href='../gos/privacy/privacy.pdf' target='_blank'><img src='images/gdpr.png' alt='Privacy' height='32' width='32'></a>"; ?></td>-->
    </tr>
    
    <?php
    $totale+=$tlav;
     }
    echo "</table>";
    echo "</div>";
    }
    $tempo_totale = floor($totale/60)."h ".($totale % 60)."m ";
    $ore_operai = round(($totale/$numero_operai)/60, 2). " h";
    
    echo " 	<div class = 'container-badge-footer'>";
    echo "	<div class='box-record'>";
    echo "	<div class='testata-ore'>Record Estratti</div>";
    echo "	<div class='totale-ore'><span class='badge-home-ore badge-default-ore badge-pill-ore'>$count</span></div>";
    echo "	</div>";
    
    echo "	<div class='box-tlav'>";
    echo "	<div class='testata-ore'>Totale Ore Vendute</div>";
    echo "	<div class='totale-ore'><span class='badge-home-ore badge-default-ore badge-pill-ore'>$tempo_totale</span></div>";
    echo "	</div>";
    
    echo "	<div class='box-oreoperai'>";
    echo "	<div class='testata-ore'>Ore Vendute per 4 operai</div>";
    echo "	<div class='totale-ore'><span class='badge-home-ore badge-default-ore badge-pill-ore'>$ore_operai</span></div>";
    echo "	</div>";
    echo "  </div>";
    ?>
    
  • Re: Mostrare indirizzo ip di chi registra un appuntamento

    Fai un var_dump o print_r della variabile $res prima del while e verifica che esista il campo [ipadd].
    Se non dovesse esistere dobbiamo rivedere la query, se è valorizzato ricontrolliamo il codice HTML dentro il ciclo while
Devi accedere o registrarti per scrivere nel forum
19 risposte