Bonjour a tous et a toutes , je voudrais faire une page php sur ordi ou smartphone qui me renvoie les coordonnées gps courantes du client, je suis perdu , qqn pourrait m'aider svp ? d'avance merci beaucoups![]()
Bonjour a tous et a toutes , je voudrais faire une page php sur ordi ou smartphone qui me renvoie les coordonnées gps courantes du client, je suis perdu , qqn pourrait m'aider svp ? d'avance merci beaucoups![]()
Bonjour,
A part la localisation par IP qui n'est absolument pas précise, il n'est pas possible d'en savoir plus via PHP.
Pour avoir des infos plus précises, il faut utiliser Javascript de cette façon :
Code js : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function doSomethingWithGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (position) { console.log('current position', position.coords.latitude, position.coords.longitude); }); } } doSomethingWithGeolocation();
NB : Cela va faire apparaître une demande de localisation "le site untel souhaite connaitre votre position", il n'est pas possible de récupérer l'info sur l'utilisateur n'a pas donné son accord.
Voilà pourquoi il y a une condition dans la fonction : if (navigator.geolocation) {
Merci beaucoup pour le code , mais je suis débutant voici ce que je voudrais faire
Code js : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function doSomethingWithGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; }); } } doSomethingWithGeolocation(); alert(latitude);
comment je peux transférer une variable javascript en variable php ??
Bonjour,
PHP est un language côté serveur (AVANT l'affichage) alors que le Javascript est un language côté navigateur/client (donc APRES l'affichage).
Le seul moyen de donner à PHP des informations depuis le client est de les envoyer via ce qu'on appelle AJAX mais l'information est perdue directement à moins que ça ne soit sauvegardé en DB.
Bref, tu n'en dis clairement pas assez sur ce que tu veux faire et sur ton réel problème pour qu'on puisse t'aider.
ok en fait je voudrais envoyer les coordoonées gps d'un client à une adresse mail , je suis désolé d'etre aussi lent blackstar
Bon déjà c'est DarkStar mais passons xD
Je veux bien t'expliquer comment faire ça mais il y a un aspect légal à respecter.
Tu ne peux pas sauvegarder (envoyer un email est considéré comme une sauvegarde de données) ces données s'il y a moyen d'identifier la personne.
Si c'est le cas, cette dernière doit EXPLICITEMENT donner son accord, pour être en règle avec le RGPD. (y'a d'autres choses à faire en plus de l'accord mais bon, c'est pas un cours sur le RGPD ^^)
Voici une mise à jour du code (j'ai utilisé jQuery pour plus de facilité, il faut donc que la librairie jQuery soit chargée!)
Code js : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 (function ($) { function doSomethingWithGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (position) { $.ajax({ method: 'POST', url: 'url_vers_le_fichier_php.php', data: { action: 'send_geoloc', lat: position.coords.latitude, lng: position.coords.longitude, }, }); }); } } doSomethingWithGeolocation(); })(jQuery);
Et côté PHP :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 if (!empty($_POST['action']) && $_POST['action'] === 'send_geoloc') { // Envoi de l'email $to = "tonadresse@email.ici"; $subject = "La geoloc !"; $message = [ "Voici un email avec la geoloc", "Lat: " . $_POST['lat'], "Lng: " . $_POST['lng'] ]; mail($to, $subject, implode(PHP_EOL, $message)); }
ok j'ai suivit ton aide et j'ai fait un fichier GPS.php qui contient l'ensemble des codes que tu m'a passé comme suis :
Jquery est lancé dans le include.php au début du code , et apparemment ca marche en offline dans dreamweaver mais quand je teste la version online il me demande pas l'autorisation pour afficher les coordonnées gps et rien ne se passe . Je te passe l'URL : http://www.aumone.fr/GPS.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 <!doctype html> <html> <head> <title>GPS</title> <?php include_once"_meta.php"; ?> <?php include_once"_include.php"; ?> <body> <!----------------------------------------------------------> <!-------------------------- BODY ----------------------> <!------------------------------------------------------> <!-- chargement du php--> <?php include_once "_header.php";?> <?php if (!empty($_POST['action']) && $_POST['action'] === 'send_geoloc') { // Envoi de l'email $to = "admin@aumone.fr"; $subject = "La geoloc !"; $message = [ "Voici un email avec la geoloc", "Lat: " . $_POST['lat'], "Lng: " . $_POST['lng'] ]; mail($to, $subject, implode(PHP_EOL, $message)); } ?> <!---- JAVASCRIPT ------> <script> (function ($) { function doSomethingWithGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (position) { $.ajax({ method: 'POST', url: 'GPS.php', data: { action: 'send_geoloc', lat: position.coords.latitude, lng: position.coords.longitude, }, }); }); } } doSomethingWithGeolocation(); })(jQuery); </script> <?php include_once "_footer.php"; ?> </body> </html>
Est ce que tu sais ou je me suis planté ??? merci darkstar et je m'excuse pour la boulette sur ton pseudo
Salut,
Ouvre la console du navigateur (F12 sur PC), il est écrit :
Si tu as du mal à traduire, ça veut dire que ton site doit être en HTTPS pour pouvoir utiliser le service.Envoyé par Console
La preuve, si tu passes par https://www.aumone.fr/GPS.php (en passant l'alerte de sécurité), là on voit le message
EDIT :
Par contre, as-tu déjà jeté un coup d'oeil au code source de ta page (CTRL+U sur Chrome - PC) ??
C'est un peu CRADE (@jreaux62 si tu passes par là). J'ai jeté un coup d'oeil car déjà dans le code que tu as copié/collé il semble manquer une balise </head>.
Et là, c'est le drame :
- 2 doctype (écrits de façons différentes en plus, c'est bizarre)
- 2 balises head, body
- 1 balise </head> manquante
Et peut-être encore d'autres trucs mais j'ai la flemme ^^
Je te conseille de coder proprement, ça évite souvent les problèmes, surtout si tu te mets à faire du Javascript![]()
Bonjour,
Regarde le code HTML généré -> "Ctrl" + "U"
Corrige ton fichier _header.php :
-> SUPPRIME toutes les balises ci-dessous
-> Quant aux scripts CSS et JS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <!DOCTYPE HTML> <head> </head> <body> .... </body>
Mets-les dans _meta.php (ou _include.php ?).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <link rel="stylesheet" href="css/ajxmenu.css" type="text/css"> <script src="css/ajxmenu.js" type="text/javascript"></script>
Merci les gars c'est sympa de m'accorder un peu de votre temps , je vais bosser dessus demain , en tout cas darkstar tu avais raison c'est un probleme de https !
Partager