Visualizzazione risultati 1 fino 7 di 7

Discussione: Modifica codice PHP per loggare info geolocation

  1. #1
    gutguy2 non è connesso Utente
    Data registrazione
    22-12-2005
    Residenza
    BO
    Messaggi
    173

    Predefinito Modifica codice PHP per loggare info geolocation

    Ciao a tutti,
    Già uso questo codice:

    Codice PHP:

    <?php

    $ip
    = $_SERVER['REMOTE_ADDR'];
    $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
    $data = date("d/m/Y");
    $ora = date("H:i:s T");
    $browser = $_SERVER['HTTP_USER_AGENT'];


    $messaggio=$ip." ~ ".$data." ~ ".$ora." ~ ".$hostname." ~ ".$browser." \n";

    $open_file = fopen("log..txt", "a");
    fwrite($open_file, $messaggio);
    fclose($open_file);

    ?>
    per loggare l'ip del visitatore con data, ora e hostname, vorrei integrarlo con questo http://stackoverflow.com/questions/2...t-file-via-php come faccio?

    grz a chi risponderà.

  2. #2
    L'avatar di lazytime
    lazytime non è connesso Utente giovane
    Data registrazione
    17-12-2011
    Residenza
    Bergamo
    Messaggi
    43

    Predefinito

    Se ho capito bene, tu vorresti prelevare tramite il login di un utente , anche le informazioni delle coordinate in cui l'ospite si trova? Se sì, ti basta reindirizzare le variabili del gps (longitudine e latitudine) come una qualsialtra variabile (username e password diciamo), e dopo aver submittato il form, spedisci al php il tutto.

  3. #3
    gutguy2 non è connesso Utente
    Data registrazione
    22-12-2005
    Residenza
    BO
    Messaggi
    173

    Predefinito

    intanto grz per la risposta, si hai capito bene, oltre ad "$ip." ~ ".$data." ~ ".$ora." ~ ".$hostname." ~ ".$browser." nel messaggio che viene salvato su "log.txt" vorrei mettere anche "$lat." ~ "$lng.", ho provato ma non funziona...naturalmente bisogna integrare prima la parte di javascript perché lat e long devone essere carpiti a livello di client side per essere scritti server side tramite php.
    Questa è la parte client-side javascript:

    Codice HTML:
    <script>
    window.onload=function(){
    if(navigator.geolocation)
    {
      navigator.geolocation.getCurrentPosition(showPosition);
    }
    else
    {
      alert("Geolocation is not supported by this browser.");
    }
    }
    function showPosition(pos){
       $.post('saver.php',{'lat':pos.coords.latitude,'lng':pos.coords.longitude},function(res){
          console.log(res);
       });
    }
    </script>
    riusciresti a postarmi il codice php completo di come devo fare perché sono alquanto arruginito, grazi mille ancora
    Ultima modifica di karl94 : 18-05-2015 alle ore 22.39.40 Motivo: Formattazione del codice

  4. #4
    L'avatar di lazytime
    lazytime non è connesso Utente giovane
    Data registrazione
    17-12-2011
    Residenza
    Bergamo
    Messaggi
    43

    Predefinito

    Innanzitutto: nella funzione jquery del post, le variabili si possono scrivere così: variabile:valore,variabile2:valore2, non c'è bisogno di usare gli apici. Mentre per il server per leggere le variabili post e get che richiedi al server si scrive: $_POST['nome_variabile'] e $_GET['nome_variabile']; quindi potresti scrivere qualcosa come: $lat = mysql_real_escape_string($_POST['lat']); , ho usato anche l'escape per mettere un pò di sicurezza, non sei obbligato a usarlo anche tu se non vuoi.
    Ultima modifica di lazytime : 19-05-2015 alle ore 11.25.08

  5. #5
    gutguy2 non è connesso Utente
    Data registrazione
    22-12-2005
    Residenza
    BO
    Messaggi
    173

    Predefinito

    per essere onesto non ci ho capito proprio nulla

  6. #6
    L'avatar di lazytime
    lazytime non è connesso Utente giovane
    Data registrazione
    17-12-2011
    Residenza
    Bergamo
    Messaggi
    43

    Predefinito

    Tu hai inviato con il javascript delle variabili post al server.
    Codice HTML:
    $.post('saver.php',{'lat':pos.coords.latitude,'lng':pos.coords.longitude},function(res){
          console.log(res);
       });
    Per leggere queste variabili sul file saver.php, ti basta inizializzare delle variabili in cui assegni il metodo per leggere le POST.

    esempio: $latitudine = $_POST["lat"]; #$_POST["nome_variabile"];

  7. #7
    gutguy2 non è connesso Utente
    Data registrazione
    22-12-2005
    Residenza
    BO
    Messaggi
    173

    Predefinito

    intanto ancora grz per tutto, moltro apprezzato, non sai quanto, ora ho messo tutto nel file saveLocation.php che è ora cosi composto:

    <?php

    $ip = $_SERVER['REMOTE_ADDR'];
    $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
    $data = date("d/m/Y");
    $ora = date("H:i:s T");
    $browser = $_SERVER['HTTP_USER_AGENT'];
    $latlon=$_POST['latitude'].",".$_POST['longitude'];


    $messaggio=$ip." ~ ".$data." ~ ".$ora." ~ ".$hostname." ~ ".$browser." ~ ".$latlon." \n";

    $open_file = fopen("log.txt", "a");
    fwrite($open_file, $messaggio);
    fclose($open_file);

    echo json_encode(array("success"=>"true"));
    ?>
    ora nella pagine principale dove carpisco le coordinate gps clien-side faccio:

    <script>
    $(function(){
    function initialize(coords) {
    $.ajax({
    url: 'saveLocation.php',
    data: {
    longitude:coords.longitude,
    latitude:coords.latitude
    },
    error: function() {
    $('#pos').html("");
    },
    success: function(data) {
    $('#pos').html("");
    },
    type: 'POST'
    });
    }

    navigator.geolocation.getCurrentPosition(function( position){
    initialize(position.coords);
    }, function(){
    $('#pos').html('');
    });
    });
    </script>
    va benissimo, se non fosse che quando non riesce a prendere le coordinate perché geolocation è disabilitato nel browser del visitatore, non scrive nulla nel log, neanche l'ip, come posso fare per risolvere qst inconveniente?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •