Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2007, 10h15   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 2
Points : 1
Points : 1
Par défaut Pb document XML

Bonjour,
je suis nouveau ici et merci pour ce forum quant aux nombreuses informations qu'il contient.

Je développe actuellement sur une interface Google Maps pour un affichage des refuges dans les Pyrénées. Sur le serveur de développement, il n'y a pas de problèmes, l'affichage de mes cabanes se passent normalement. Par contre, dès que je passe le site sur le serveur de développement mon fichier XML renvoyé est considéré comme vide.
Voici ici la version de développement : http://dev.apem.asso.fr/google_maps/ajax.html
et ici la version sur le serveur de prod : http://www.pyrenees-refuges.com/goog...ogle_maps.html

Pourtant le fichier XML a l'air bien formé et est renvoyé par le script PHP.

côté client :
Code :
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
function getMarkers(north,south,west,east){
		    var urlstr="./read.php?north="+north+"&south="+south+"&west="+west+"&east="+east;
		    var request = GXmlHttp.create();
		    request.open('GET', urlstr , true);
		    request.onreadystatechange = function () {
				if (request.readyState == 4) {
					if (request.status == 200) {
						var xmlDoc = request.responseXML;
						locations = xmlDoc.documentElement.getElementsByTagName("location");
						//alert(locations.length);
						markers = [];
						if (locations.length){
							for (var i=0;i<locations.length;i++){
								markers[i] = new GMarker(new GLatLng(locations[i].getAttribute("lat"),locations[i].getAttribute("lng")),{icon:G_DEFAULT_ICON});
								markers[i].infowindow = locations[i].getAttribute("name")+"<br>"+locations[i].getAttribute("vallee")+"<br>"+locations[i].getAttribute("lat");
								markers[i].small_infobulle = "<br><b>"+locations[i].getAttribute("name")+"</b><br>"+locations[i].getAttribute("vallee")+"<br><br>";
								markers[i].title = locations[i].getAttribute("name");
								markers[i].markerindex = i;
								markers[i].db_id = locations[i].getAttribute("id");
								map.addOverlay(markers[i]);
							}
						}
					}
				}
			}
			request.send(null);
	    }
côté serveur :
Code :
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
require ("../admin/refuge-conf.php");
 
	$north=$_GET["north"];
	$south=$_GET["south"];
	$east=$_GET["east"];
	$west=$_GET["west"];
 
	$sql = "select gid,nom,astext(the_geom) as geom,vallee from refuges where Contains (GeometryFromText('POLYGON((".$east." ".$north.",".$west." ".$north.",".$west." ".$south.",".$east." ".$south.",".$east." ".$north."))',-1),refuges.the_geom)";
	$res = postgres($sql);
 
	// Date in the past
	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
	// always modified
	header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
	// HTTP/1.1
	header("Cache-Control: no-store, no-cache, must-revalidate");
	header("Cache-Control: post-check=0, pre-check=0", false);
	// HTTP/1.0
	header("Pragma: no-cache");
	//XML Header
	header("content-type:text/xml");
 
	echo "<locations>";
	while ($result=pg_fetch_array($res)){
		$latlon=substr($result["geom"],6,strlen($result["geom"])-7);
		$coord=explode(" ",$latlon);
		if (($coord[0]<>0)and($coord[1]<>0)){
			echo "<location id='".$result["gid"]."' name='".$result["nom"]."' lat='".$coord[1]."' lng='".$coord[0]."' vallee='".$result["vallee"]."'/>";
		}
	}
	echo "</locations>";
J'ai lu qu'il pouvait y avoir des problèmes par rapport aux caractères accentués présents en base de données. J'ai essayé en encodant le fichier XML en utf-8 et iso, rien ne change.

Avez-vous des pistes ?

Fabien.

[Edit] : c'est bien un problème d'accent, lorsque je zoome sur une zone où les cabanes n'ont pas de noms accentués, ça fonctionne.

[Résolu] : le problème ne venait pas des accents mais des apostrophes contenus en base de données
gobbaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h02   #2
Membre habitué
 
Inscription : septembre 2007
Messages : 169
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 169
Points : 116
Points : 116
Le problème doit se situer du coté de la base de donnée, est ce que l'encodage des tables est le meme en prod et en test ? Suivant la version de mysql c'est pas les memes valeurs par défaut, c'est peut etre ca.
__________________
Cartes Pokémon, Yugioh, Magic ?
Communauté d'échange
kangaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h08   #3
Invité de passage
 
Inscription : décembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 2
Points : 1
Points : 1
Citation:
Envoyé par kangaxx Voir le message
Le problème doit se situer du coté de la base de donnée, est ce que l'encodage des tables est le meme en prod et en test ? Suivant la version de mysql c'est pas les memes valeurs par défaut, c'est peut etre ca.
C'est tout à fait ça.
Je suis pas un pro des différents encodages des caractères accentués.
Mais en base de données en développement mes accents sont des accents 'normaux' (utf-8 ?) et en production j'ai des trucs du style "è" (format décimal).
Je cherche donc à transformer dans le code php les caractères décimaux en utf-8 - ou alors y'a t'il un moyen d'en l'en-tête du xml de définir l'encodage pour des caractères accentués quand ils sont en décimal ?

Merci beaucoup.

[Edit] : je n'utilise pas MySQL mais Postgre - parce qu'il y a une composante spatiale PostGIS qui me permet de faire des requêtes géographiques sur les objetx. Mais les problèmes d'encodage doivent être les mêmes.

[Edit2] : il s'agit de jeu de caractères SQL-ASCII en dév et en prod sauf que dans un les caractères semblent normaux et dans l'autre les caractères sont encodé en décimal
gobbaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h41.


 
 
 
 
Partenaires

Hébergement Web