Obtener ubicación con JavaScript y enviarla a PHP

Resumen: en este post te mostraré a obtener la ubicación de un usuario para enviarla a un servidor con PHP, usando JavaScript y PHP.

Vamos a usar JavaScript para acceder a las coordenadas GPS del dispositivo, y después vamos a usar fetch para enviar los datos a un servidor con PHP usando JSON.

Obtener coordenadas GPS con PHP y JavaScript

Nota: vamos a suscribirnos a las actualizaciones de ubicación como en otro post que vimos anteriormente.

Demostración y código fuente

En el post voy a explicar el código, pero puedes ver el repositorio completo en GitHub.

También puedes acceder a una demostración en línea.

Lecturas recomendadas

Recomiendo leer:

Acceder a la ubicación con JavaScript

Recibir actualizaciones de ubicación conforme el usuario se mueve

Ya que este post solo se enfocará mayormente en la comunicación con el servidor.

Enviar coordenadas GPS a servidor con PHP

Vamos a escuchar cuando la ubicación del usuario cambie y vamos a enviar las coordenadas con el timestamp a nuestro servidor.

Lado del cliente

Comenzamos definiendo nuestro layout. En este caso pondré dos botones, uno para comenzar a loguear la ubicación y otro para detenerlo.

Esto de los botones es opcional, puedes comenzar a obtener actualizaciones de la ubicación sin la interacción del usuario, aunque obviamente necesitas permiso.

Ahora definimos el script. Nos suscribimos a las actualizaciones pero cada que obtenemos una nueva ubicación, la enviamos a nuestro servidor usando fetch.

Como ves, estoy creando un nuevo objeto, ya que el que se obtiene no se puede codificar (supongo que no es serializable por lo mismo de la seguridad)

Fíjate que lo estoy codificando con JSON.

También observa la constante RUTA_API, pues en esa ubicación es en donde se va a enviar la ubicación del usuario.

Lado del servidor

En el lado del servidor recibimos la información y decodificamos el JSON.

Para guardar las coordenadas podríamos usar un método más robusto como una base de datos, pero en este caso estoy usando un simple archivo de texto usando la función file_put_contents y la constante FILE_APPEND para agregar contenido en lugar de remplazarlo.

El objeto tiene la propiead timestamp. También tiene la propiedad coordenadas que a su vez tienen latitud y longitud.

Si ahora abrimos el archivo ubicaciones.txt veremos que las coordenadas han sido logueadas.

Este método es obviamente más fiable que el de la IP para obtener la ubicación de un dispositivo con PHP.

Como siempre lo digo, accede a la demo o mira el código en GitHub.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *