Bonjour,

J'ai quelque problème pour transmettre certaine variable à un script php avec xmlHttpRequest. tout d'abord voila le petit script que j'ai écrit pour simplifier la présentation de mon programme.

<html>
<head>
<SCRIPT src="./include/ajax.js" type="text/javascript"></script>
<SCRIPT>
function valider() {
xhr=getXhr()
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
reponse=xhr.responseXML;

var root = reponse.getElementsByTagName('rep').item(0);
alert(root.getElementsByTagName('text').item(0).firstChild.nodeValue);
alert(root.getElementsByTagName('text2').item(0).firstChild.nodeValue);
}
}

var documentxml = document.implementation.createDocument("", "", null);
var testnode = documentxml.createElement('test');
var nom = documentxml.createElement('nom');

testnode.appendChild(document.createTextNode(document.getElementById('test').value));
nom.appendChild(testnode);

documentxml.appendChild(nom);
var serializer = new XMLSerializer();
var xml = serializer.serializeToString(documentxml);

postDataAsynchronous("antenne2.php","xml="+xml+"&test="+document.getElementById('test').value,xhr);
}
</script>
</head>
<body>
<input type="text" id="test">
<input type="button" value="OK" onclick="valider()">
</form>
</form>
</body>
</html>
et la page du serveur

<?
header('Content-Type: text/xml');

$dom = new DomDocument();
$dom->loadXML($_POST['xml']);
$nom=$dom->getElementsByTagName('nom')->item(0)->firstChild->nodeValue;
$test=$_POST['test'];
echo "<rep><text>$nom</text><text2>$test</text2></rep>";

?>
La page html transmet simplement un chaine de caractère au serveur, qui lui renvoye aussitot. Le problème ne se situe pas dans l'implémentation mais dans le fait que certaine chaine de caractère sont modifié lors de la réception par le serveur de variable client.

Par exemple : si j'essaye de transmettre la chaine %00 , le serveur me renvoie la chaine \0 ou encore 00%77 donne 00w.

a noter aussi que si transmet 00%999 le script php donne l'erreur suivante

<b>Warning</b>: DOMDocument::loadXML() [<a href='function.DOMDocument-loadXML'>function.DOMDocument-loadXML</a>]: Input is not proper UTF-8, indicate encoding !
Edit pour l'erreur php utf8_encode() corrige le problème mais renvoye toujours des chaines bizarres

Bref j'ai du mal a comprendre l'origine du problème, donc si vous avez des pistes

Merci