Page 1 sur 1

Passage d'infos de JS vers PHP

Posté : 07 déc. 2020, 10:01
par richaz
Bonjour,
J'ai utilisé votre module de géolocalisation.
Il fonctionne parfaitement.
Je voulais récupéré la latitude / longitude coté PHP.
Pour un autre programme, je l'avais passé par un cookie, mais j'ai l'impression que cela n'est pas très orthodoxe.
Je ne veux pas non plus le passer par GET ou POST.
Y a t'il une autre méthode ?
Merci de votre aide.

Re: Passage d'infos de JS vers PHP

Posté : 07 déc. 2020, 10:40
par webmaster
Bonjour,

Le passage par cookie est déconseillé car les cookies peuvent être désactivé par l'utilisateur.

La meilleure solution est d'utiliser GET ou POST, idéalement avec un appel AJAX de manière transparente pour l'utilisateur. En quoi c'est gênant pour vous ?

Re: Passage d'infos de JS vers PHP

Posté : 07 déc. 2020, 12:50
par richaz
Merci pour votre réponse.
J'avais un a priori pour POST ou GET.
Je vais donc travailler sur cela.
Richaz

Re: Passage d'infos de JS vers PHP

Posté : 09 déc. 2020, 14:53
par richaz
Bonjour,
J'essaie d'avancer dans le passage de parametres avec GET comme vous m'avez conseillé.
Dans la fonction géolocalisation j'ai ajouté les variables res latitude et reslongitude comme indiquées ci dessous :

// *** TEST GEOLOCALISATION *********************************
function getMyPosition() {
navigator.geolocation.getCurrentPosition(function(position) {
console.log("Position trouvée : Latitude="+position.coords.latitude+" Longitude="+position.coords.longitude);
console.log(position.coords);
var reslatitude = position.coords.latitude;
var reslongitude = position.coords.longitude;
}, function(error) {
console.log("Erreur de géoloc N°"+error.code+" : "+error.message);
console.log(error);
}, {
timeout: 2000,
maximumAge: 60000
});
return reslatitude, reslongitude;
}

Dans mon instruction FORM, j'essaie de les passer en GET :
<form name="form_envoi_mail" onsubmit="return getMyPosition(this)" action="clt_env_mail_SOS3.php?lat=<script type='text/javascript'>document.getElementByName('reslatitude').innerHTML+&long=+document.getElementByName('reslongitude').innerHTML</script>" method="get">

A priori, je ne récupere pas mes 2 variables.
Qu'en pensez vous ?
Salutations
RICHAZ

Re: Passage d'infos de JS vers PHP

Posté : 09 déc. 2020, 14:59
par richaz
Petite correction, je pense :
<form name="form_envoi_mail" onsubmit="return getMyPosition(this)" action="clt_env_mail_SOS3.php?lat=<script type='text/javascript'>document.getElementByName('reslatitude').innerHTML+'&long='+document.getElementByName('reslongitude').innerHTML</script>" method="get">

Il me retourne comme parametres, les autres zones du formulaire.
Je ne comprends pas.

Re: Passage d'infos de JS vers PHP

Posté : 11 déc. 2020, 14:29
par richaz
Bonjour,
HELP : JE SUIS BLOQUE PAR UN PETIT PB.
J'ai simplifié au maximum, mon exemple.
Quelqu'un peut me dire par quoi remplacer les paramètres xxx et yyy de mon instruction FORM, pour que je puisse récuperer la latitude et longitude dans ma partie PHP.
J'essaie de les passer en parametres GET.
Voici mon code :
---------------------------------------
<?php
session_start();
$zlat=$_GET['lat'];
$zlong=$_GET['long'];
?>
<!DOCTYPE html>
<html>
<head>
<title>Gélocalisation de l'utilisateur</title>
<script type="text/javascript">
function getMyPosition() {
navigator.geolocation.getCurrentPosition(function(position) {
console.log("Position trouvée : Latitude="+position.coords.latitude+" Longitude="+position.coords.longitude);
console.log(position.coords);

document.getElementById("latid").innerHTML=position.coords.latitude;
document.getElementById("longid").innerHTML=position.coords.longitude;

}, function(error) {
console.log("Erreur de géoloc N°"+error.code+" : "+error.message);
console.log(error);
}, {
timeout: 2000,
maximumAge: 60000
});
}

</script>
</head>
<body>

<form onsubmit="getMyPosition()" action="test_geolocal.php?lat=xxxxx&long=yyyy" method="post">
<input type="text" name="latname" id="latid">
<input type="text" name="longname" id="longid">
<button type="submit">test</button>
</form>
</body>
</html>