IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Des coordonnées gps ?


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Par défaut Des coordonnées gps ?
    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

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    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) {

  3. #3
    Membre confirmé Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Par défaut
    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 ??

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    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.

  5. #5
    Membre confirmé Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Par défaut
    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

  6. #6
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    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));
    }

  7. #7
    Membre confirmé Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Par défaut
    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 :
    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>
    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

    Est ce que tu sais ou je me suis planté ??? merci darkstar et je m'excuse pour la boulette sur ton pseudo

  8. #8
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Salut,

    Ouvre la console du navigateur (F12 sur PC), il est écrit :
    Citation Envoyé par Console
    [Deprecation] getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://sites.google.com/a/chromium....secure-origins for more details.
    Si tu as du mal à traduire, ça veut dire que ton site doit être en HTTPS pour pouvoir utiliser le service.

    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

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Regarde le code HTML généré -> "Ctrl" + "U"

    Corrige ton fichier _header.php :
    -> SUPPRIME toutes les balises ci-dessous
    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>
    -> Quant aux scripts CSS et JS :
    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>
    Mets-les dans _meta.php (ou _include.php ?).

  10. #10
    Membre confirmé Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Par défaut
    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 !

Discussions similaires

  1. [WD17] Récupération des coordonnées GPS
    Par thierrybatlle dans le forum WinDev
    Réponses: 6
    Dernier message: 08/01/2016, 12h11
  2. [Toutes versions] Comparaison des coordonnées Gps sur 2 tableaux Excel avec des coordonnées légèrement différentes
    Par delattre13 dans le forum Macros et VBA Excel
    Réponses: 41
    Dernier message: 13/09/2015, 14h44
  3. Placer des coordonnées GPS sur une image du monde à plat
    Par DotNET74 dans le forum Windows Phone
    Réponses: 11
    Dernier message: 02/01/2013, 10h48
  4. placer des coordonnées GPS sur une carte
    Par tomkiki dans le forum Débuter
    Réponses: 7
    Dernier message: 15/01/2011, 17h55
  5. Ouvrir des Coordonnée GPS
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/04/2010, 23h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo