Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum osCommerce-fr _ Echanges développeurs _ [Résolu] Problème ajax ne fonctionne plus

Écrit par : Gnidhal 24 Feb 2012, 09:29

Bonjour à tous,
j'utilise la bibliothèque xajax qui jusque là marchait très bien mais je suis passé en php 5.3
J'ai adapté ce framework qui lançais des tas d'alertes deprecated et ça fonctionne* maintenant mais :
d'une manière très curieuse il y a blocage des fonctions ajax suite à une modif dans un script mais je ne trouve pas où.
La cause du blocage ajax est connue :

Code
Erreur : instruction de traitement XML ou texte pas au début d'une entité externe
Fichier Source : http://server/chemin/script.php
Ligne : 1, Colonne : 56
Code Source :
                                                       <?xml version="1.0" encoding="ISO-8859-1" ?><xjx>...

ok, ok, il y a des espaces devant l'appel xml : vraisemblablement 55
Oui c'est bien mais je fais comment pour localiser la source de cette erreur ?
Connaissez-vous un outil qui me permettrait de pister l'erreur ?
Je suis sous wampserver en php5.3 avec Xdebug
mais je n'ai pas plus d'infos que ce que je viens de présenter
les logs d'erreur PHP et Apache restent vides devant ce type d'erreur et la console d'erreur me donne juste l'info précédemment citée

Alors oui, je sais, pourquoi ne pas faire de l'ajax directement en jQuery :
- j'ai commencé à développer mes fonctions en xajax, tout ré-écrire sous jQuery est soulant
- en jQuery je rencontre un problème récurrent de format de page : je suis en iso et jQuery n'aime que utf-8 les accents et caractères spéciaux sont dont complètement mâchés


*solution pour éviter le deprecated dans xajax :
rechercher les lignes qui contenant $xuf=&new et enlever le & => $xuf=new exemple :
Code
//$xuf=&new xajaxUserFunction($xuf);
$xuf=new xajaxUserFunction($xuf);

le passage par référence est implicite dans l'instanciation par php5.3

Écrit par : Gnidhal 24 Feb 2012, 12:14

j'ai un peu avancé mais je ne trouve toujours pas la cause
visiblement chaque include ajoute 2 espaces avant le doc_type de la page
J'ai bien sur vérifié chaque script : ils commencent par <?php et se terminent par ?> pas autre chose avant ni après!
un souci de format de script ?
Pffff bizarre!

Écrit par : Gnidhal 24 Feb 2012, 13:48

Hé bien voilà !
En explorant tous les fichiers function et classes j'ai trouvé 2 espaces après le ?> mais ça ne suffisait pas pour ramener la balise doctype au début de page
J'ai fini par supprimer toutes les balises ?> à la fin des scripts de fonction et classes et là c'est OK

ça me semble nouveau comme comportement car jusque là tout fonctionnait bien mais si c'est la solution, alors soit !

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)