j'arrive pas à enregistrer $latitude et $longitude dans ma table malgré que j'ai essayé de mettre le deux attribut en varchar, int, float et double mais tjs j'ai le même type d'insertion en base de donnée. merci d'avance
voilà mon code
.......
<?php
$today = date('d/m/Y H:m:s');echo $today."<br>";
$ip = getenv("REMOTE_ADDR");echo $ip."<br>";
$latitude ="<span id=\"latitude\"></span>";echo $latitude."<br>";
$longitude ="<span id=\"longitude\"></span>";echo $longitude."<br>";
try {
$bdd=new PDO('mysql:host=localhost;dbname=test',
'root',
'',
array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
} catch (Exception $e) {
die('Impossible de se connecter à la base de donnée');
}
date_default_timezone_set('Europe/Paris');
$req=$bdd->prepare('INSERT INTO visiteur (datevisite, lang, haut, ip)
VALUES (:datevisite,:lang,:haut,:ip)');
$req->execute(array(':datevisite'=>$today,':lang'=>$latitude,':haut'=>$longitude,':ip'=>$ip));
print_r($req);
$req->closeCursor();
?>
...........
j'aurai comme affichage
28/02/2012 13:02:49
127.0.0.1
48.858565
2.347198
PDOStatement Object ( [queryString] => INSERT INTO visiteur (datevisite, lang, haut, ip) VALUES (:datevisite,:lang,:haut,:ip) )
L'insertion en base de données :
1 28/02/2012 13:02:58 <span id="latitude"></span> <span id="longitude"></span> 127.0.0.1
Petite correction vite faite...
<?php
$ip = getenv("REMOTE_ADDR").$ip."<br>";//la tu as un souci mais je n'est
//pas le temps ce soir.
$latitude ="<span id=\"latitude\"></span>".$latitude."<br>";
$longitude ="<span id=\"longitude\"></span>".$longitude."<br>";
try
{
$bdd=new PDO('mysql:host=localhost;dbname=test', 'root', '');
array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
}
catch (Exception $e)
{
die('Impossible de se connecter à la base de donnée');
}
date_default_timezone_set('Europe/Paris');
$req=$bdd->prepare('INSERT INTO visiteur (datevisite, lang, haut, ip)VALUES (NOW(),:lang,:haut,:ip)');
$req->execute(array('lang'=>$latitude,'haut'=>$longitude,'ip'=>$ip));
$req->closeCursor();
?>
j'ai ça comme donnée dans ma base de donnée suite à l'insertion
44 2012-02-28 17:24:13 <span id="latitude"></span><br> <span id="longitude"></span><br> 127.0.0.1<br>
ceci est la partie JavaScript qui fonctionne bien, en fait le pb quand on récupère le $latitude et $longitude
merci d'avance
la partie JavaScript qui fonctionne bien
function startWatch(){
if (navigator.geolocation)
var watchId = navigator.geolocation.watchPosition(successCallback,
errorCallback,
{enableHighAccuracy:true,
timeout:10000,
maximumAge:0});
else
alert("Votre navigateur ne prend pas en compte la géolocalisation HTML5");
}
function stopWatch(){
navigator.geolocation.clearWatch(watchId);
}
function successCallback(position){
document.getElementById("latitude").innerHTML = position.coords.latitude;
document.getElementById("longitude").innerHTML = position.coords.longitude;
};
var toto = 1
function errorCallback(error){
switch(error.code){
case error.PERMISSION_DENIED:
alert("L'utilisateur n'a pas autorisé l'accès à sa position");
break;
case error.POSITION_UNAVAILABLE:
alert("L'emplacement de l'utilisateur n'a pas pu être déterminé");
break;
case error.TIMEOUT:
alert("Le service n'a pas répondu à temps");
break;
}
};
Autant pour moi, je n'est pas pris le temps de bien comprendre ton code.
Ton problème est de modifier une variable php avec du javascript.
Le souci c'est que le javascript agit sur le html(coter client), et non sur ta variable(coter serveur).
est ce que je peux récupérer une variable en java script et le mettre dans un variable en php?
j'arrive à l'afficher
$latitude ="<span id=\"latitude\"></span>";echo $latitude;
mais j'arrive pas à enregistrer dans la table
$req=$bdd->prepare('INSERT INTO visiteur (datevisite, lang, haut, ip)VALUES (:datevisite,:lang,:haut,:ip)');
$req->execute(array(':datevisite'=>$today,':lang'=>$latitude,':haut'=>$longitude,':ip'=>$ip));
est ce que vous avez une idée?
merci de votre aide
Après quelques recherches, tu peut peut-être utiliser AJAX,
ou passer par un formulaire, bref pas simple.