php/html : log de data GPS

johny12

Membre actif
10 Mars 2008
150
3
Bonjour, étant assez limité en php/html, j'aurais besoin de votre aide

Je vous expose le "problème" :

J'aimerais enregistrer les données GPS de mon iPhone dans un fichier log sur mon mac
J'ai donc activé le serveur web depuis le mac ( qui étrangement marche bien )

J'ai trouvé la fonction pour récupérer les données GPS du iPhone :

Bloc de code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="refresh" content="3; URL=/log.txt">
<title>iPhone 3.0 geolocation demo</title>
<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport"/>
<script>
function handler(location) {
var message = document.getElementById("message");
message.innerHTML+="<p>Longitude: " + location.coords.longitude + "</p>";
message.innerHTML+="<p>Latitude: " + location.coords.latitude + "</p>";
message.innerHTML+="<p>Accuracy: " + location.coords.accuracy + "</p>";
}
navigator.geolocation.getCurrentPosition(handler);
</script>
</head>
<body>
<div id="message">Location unknown</div>
</body>
</html>

Mais maintenant, je n'ai absolument aucune idée sur comment enregistrer ces fameuses données dans mon fichier "log.txt" ( à la racine du serveur web)

Si l'un de vous à une petite fonction magique qui permettrait donc :

D'effacer tout ce qui est contenu dans le "log.txt"
D'y écrire les données GPS

Le tout, en continu ( avec un genre de refresh tout les 1/2 secondes )

Merci à vous =)
 
Une solution possible est de creer une nouvelle page PHP qui va recevoir un envoi de donnees POST que tu ajoute a la fin de ta fonction handler en utilisant.

Petit exemple vite fait utilisant jQuery
Bloc de code:
function handler(location) {
    var message = document.getElementById("message");
    message.innerHTML+="<p>Longitude: " + location.coords.longitude + "</p>";
    message.innerHTML+="<p>Latitude: " + location.coords.latitude + "</p>";
    message.innerHTML+="<p>Accuracy: " + location.coords.accuracy + "</p>";

    //Envoie des donnees
    $.post("receptionDonnees.php", "long="+location.coords.longitude+"&lat="+location.coords.latitude+"&acc="+location.coords.accuracy);
}
Tu peux egalement rajouter un callback a la fonction $.post pour rafraichir la page directement des que les donnees sont bien ecrite dans le fichier.

Il te faut donc creer une fonction nouvelle page receptionDonnees.php qui devrait ressembler a quelque chose du genre
Bloc de code:
<?php

  if(isset($_POST['lat']) && isset($_POST['long']) && isset($_POST['acc']) ){
      extract($_POST); //cree les variables $lat, $long et $acc en lisant les index de $_POST

     $toWrite = $long.",".$lat.",".$acc; //tu peux modifier celle-ci comme tu veux

     //Ici tu mets une fonction qui ecrit a la fin de ton fichier de log, je te laisse chercher google pour faire ca.
  }

?>


J'ai ecrit ca vite fait, y a surement des fautes de syntaxe, mais l'idee est la.