8795 sujets

Développement web côté serveur, CMS

Bonjour à vous,

J'essaye désespérement de faire tourner une vérification automatique de choix de login sur mon site (ça se passe grâce à XMLHttprequest, ça évite d'attendre la soumission du formulaire pour savoir si le login choisi est déjà pris ou non). Bref, ça me parait intéressant, mais je bloque sur un problème. Si je traite le fichier XML suivant :
<?xml version="1.0" encoding="UTF-8" ?>
<response>
  <method>checkName</method>
  <result>1</result>
</response>
, pas de problème (mon code est simplifié pour mes tests. 1, ça veut dire que le login est pris, et pour tester, tous les logins sont pris...). Par contre, pour réellement confronter le choix de l'utilisateur aux logins déjà pris dans ma base SQL, je dois passer par PHP et quand je mets :
<?php
header("Content-Type: text/xml");
?>

<?xml version="1.0" encoding="UTF-8" ?>
<response>
  <method>checkName</method>
  <result>1</result>
</response>
en enregistrant mon fichier en .php, là, plus rien !! Le test ne fonctionne pas, comme si il ne comprenait pas le fichier. Même avec un overRideMimeType('text/xml') dans l'appel, je n'ai rien. Bref, je passe des heures pour pas grand chose et là je ne vois plus qu'une solution : une personne assez aimable pour m'aider... mes faibles connaissances ne me permettent pas de surmonter ce problème...
D'après ce que j'ai lu, on pourrait passer par une responseText au lieu de ReponseXML (surtout pour ce que je veux faire), mais j'aimerais quand même bien comprendre ce XML pour d'autres utilisations futures !

Merci pour votre aide. (en espérant avoir été assez clair).

Fred.
essaye avec ceci :

<?php
header("Content-Type: application/xml");
$xml = '<?xml version="1.0" encoding="UTF-8" ?>'."\n";
$xml .= '<response>'."\n";
$xml .= '<method>checkName</method>'."\n";
$xml .= '<result>1</result>'."\n";
$xml .= '</response>'."\n";
echo $xml;
?>

Modifié par jld (24 Oct 2005 - 17:16)
Bonjour,
appelle le fichier php directement. Tu devrais découvrir un gentil parse error...

La raison est simple, il prend <? comme un short tag php, et comme la suite n'a rien à voir avec du php, il renvoie une parse error.

J'ai pu résoudre le problème en rusant :


<?php
header("Content-Type:text/xml");
header("Content-Language:fr");

echo '<' . '?xml version="1.0" encoding="iso-8859-1"?' . '>';

// ... suite ...
?>