IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XSLT] Problème de header ? de cache ?


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut [XSLT] Problème de header ? de cache ?
    salut,
    comme certains auront vu, je fais du php et du js.

    J'utilise le xmlHttpRequest pour faire des appels essentiellemnts synchrone avec mon appli php.
    Du coté php j'ai une classe qui envoit une reponse formatée en xml a mon objet js.

    Tout allais bien jusqu'a ce que je mette plusieurs composants javascript qui dialoguent avec mon serveur.

    J'ai des fois des erreur comme ca :
    Parser Error :
    Erreur d'analyse XML : instruction de traitement XML pas au début d'une entité externe Emplacement : http://localhost/check/noname/Module...uits/index.php Numéro de ligne 2, Colonne 1 :
    <?xml version='1.0' ?><ajaxResponse><methode>CHANGE_CONTENT</methode><content><div> ^
    C'est ce que me ressort mon debugger js maison ca.
    Il semblerais donc que ca viens du prologue xml.

    Mon code php au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     $buffer = "<?xml version='1.0' ?>";
    buffer	.= "<ajaxResponse>";
    .....
    buffer	.= "</ajaxResponse>";
    $buffer = str_replace("&","&amp;",$buffer);	
    header('Content-Type: text/xml'); 
    echo utf8_encode($buffer);
    J'ai tenté la grosse magouille bien crade :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $buffer .= "</ajaxResponse>";
    header('Content-Type: text/xml'); 
    if(!isset($_SESSION["prologDone"])){
    	echo "<?xml version='1.0' ?>";
    	$_SESSION["prologDone"] = true;
    }
    $buffer = str_replace("&","&amp;",$buffer);	
    echo utf8_encode($buffer);
    car je me suis rendu compte que si avant le deuxieme coup j'allais enlever le prologue du coté php (je peux car pas besoin de rafraichir la page) he bien la ca marche !

    le probleme c'est que la j'ai une page ou ca me met cette erreur au premier coup quand le prologue y est et plus apres

    J'ai essayé de mettre des headers pour ne pas mettre en cache et rien non plus ...



    merci a tout ceux qui se pencheront sur mon cas
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Tu peux pas avoir des problèmes comme tout le monde ? Je sais pas moi undefined index, problèmes de boucles, arbres de tournoi en GD à la rigueur ...
    parce que là...

    Plus sérieusement, j'imagine que tu peux pas faire en sorte de n'avoir qu'un appel en même temps ?

  3. #3
    Inscrit Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Points : 179
    Points
    179
    Par défaut
    Hehe Mr N. clair il peut pas faire comme tout le monde notre siddh

    Je dois aller me coucher donc je revois ça demain si je peux être utile ^^

    Bonne nuit à tous !

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ben le soucis c est que justement non je peux pas.

    la le probleme se pose sur un enchainement recursif !!

    j'ai un select qui sur un onchange va aller demander a php des données qui vont permettre d en générer un autre qui se placera en dessous et qui reagira pareil ....

    J'ai des gammes de produits qui peuvent contenir des gammes.

    Et tant qu'il y a des sous gammes, je les affiche en dessous.

    Ca marche tres bien.

    Y a juste ce prologue qui me #####
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    J'ai trouvé : ne passe pas par XML.
    Je trouve XML est bien trop verbeux pour ce genre d'appli. Ca va quand tu veux faire du XSLT derrière, mais quand c'est du simple transfert de données, surtout vers javascript, c'est assez lourd et ça consomme de la bande passante
    Je serais toi, je jeterais un oeil à JSON

    Je sais, je résoud toujours pas ton problème

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ben le truc avec le xml c est que je lui passe des fois des contenus de template smarty et c est beaucoup plus cool a récupérer qu'au format text.

    mais je vais regarder ton truc la.
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  7. #7
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Le document est en ligne? On peut voir le XML généré? Apparement, c'est un problème de prologue XML. Tu l'as placé au bon endroit dans ton fichier (au début)?

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    alors le doc n'est pas en ligne.

    Le prologue est bien au début.
    Apparement il prend le prologue pour une pi.

    Exemple de contenu xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version='1.0' ?>
    <ajaxResponse>
    <methode>CHANGE_CONTENT</methode>
    <elemId>mondivid</elemId>
    <content><div id='machin'>
    bla bla xhtml ....
    </content>
    </ajaxResponse>

    le xml généré s'affiche correctement dans un navigateur.
    Il est bien formé.
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  9. #9
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    Heu...

    Bien formé ?

    Les valeurs des attributs des tags XML doivent être entre double quotes et non entre simple quotes...

    Dés la première ligne tu devrait plutot avoir ca :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" ?>

  10. #10
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    oui enfin la j'ai tapé le texte a la main
    et dans mon code php j ai essayé avec les deux, ' ou " et ca change rien
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  11. #11
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Citation Envoyé par siddh
    alors le doc n'est pas en ligne.

    Le prologue est bien au début.
    Apparement il prend le prologue pour une pi.

    Exemple de contenu xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version='1.0' ?>
    <ajaxResponse>
    <methode>CHANGE_CONTENT</methode>
    <elemId>mondivid</elemId>
    <content><div id='machin'>
    bla bla xhtml ....
    </content>
    </ajaxResponse>
    le xml généré s'affiche correctement dans un navigateur.
    Il est bien formé.
    le tag div n'est pas fermé!

  12. #12
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    oui encore une fois c est a la main que j ai fais le xml la dsl, mon xml est bien formé, il s'affiche correctement dans un navigateur
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  13. #13
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut Re: [XML] Probleme de header ? de cache ?
    Citation Envoyé par siddh
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Parser Error :
    Erreur d'analyse XML : instruction de traitement XML pas au début d'une entité externe Emplacement : http://localhost/check/noname/Modules/TheoCoiffProduits/index.php Numéro de ligne 2, Colonne 1 :
    <?xml version='1.0' ?><ajaxResponse><methode>CHANGE_CONTENT</methode><content><div> ^
    Je crois que j'ai trouvé ...

    Dans le message il dit que l'instruction de traitement n'est pas au début, pbm ligne 2...

    C'est à dire qu'a mon avis, l'entête XML (<?xml version....) apparait à la seconde ligne or il DOIT débuter le fichier...

    Tu dois avoir qq part un retour chariot qui traine en début de fichier, avant le echo de ton fichier XML...

  14. #14
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    non c'est bien ce qui me navre !
    j'ai bien vérifié tout ca
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  15. #15
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    j'ai bien revérifié, aucune ligne avant mon prologue.

    Ce qui est etrange, c'est que sur cette page, le prologue fais planter au début mais plus apres.

    Je change la val de mon select, ca m'affiche le message d'erreur.
    Si je rechange mon select ca marche apres et ca enchaine bien.
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  16. #16
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    En tout cas c'est comme ca que j'interprete le message d'erreur : "l'instruction de traitement (<?xmlx blahblah) ne débute pas le fichier alors qu'il le devrait"... donc il trouve au moins un caractère invisible (saut de ligne, espace, tabulation...) qui traine... reste à trouvé d'où il vient...

    as-tu vérifié qu'il n'y a pas un saut de ligne qui traine avant un "<?php" ou après un "?>" à la fin d'un fichier inclu par exemple ?

    De toute façon, c'est toujours le genre de problème qui enerve parce que c'est souvent un petit rien du tout planqué dans un coin... idem que le message "header information can not be send, output allready started at line xx"... sauf que là au moins, il nous donne la ligne... dans ton cas... c'est à l'aveugle :-(

  17. #17
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    oui et le pire c est que j'ai un header avant mon echo de mon xml.

    Mais pkoi la il me dis ca et apres ca marche ? grrrrrrrrrrrrr

    Est ce que ca pourrais venir de mon utf8_encode ?

    deja qu il encode pas les & ce naze
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  18. #18
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Parfois, lorsqu'un script php est encodé en utf8 (le fichier du script) il y a des "caractères" qui sont envoyé à l'insu de notre plein gré et du coup l'ouverture de session (ou tout autre envoi de header()) se passe mal.

    C'est peut-etre similaire, essaye sans utf8

  19. #19
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    oui j essairais ca ce soir mais le truc c est que sans ca j ai pu droit aux é
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  20. #20
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    il faudrait alors que tu fasse un UTF8 encode sur les données séparément, en tout cas, pas sur la première ligne des données XML et ca devrait être bon...

    Sinon, les accents devrait passer sans problème à l'intérieur de bloc CDATA

Discussions similaires

  1. Problème de header pour la gestion du cache
    Par Nico02 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 16/10/2014, 18h36
  2. [PHP][XSLT] problème caractères accentués
    Par beho dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 29/05/2006, 09h29
  3. [XSLT]Problème de séléction du noeud courrant
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/08/2005, 07h51
  4. [XSLT]Problèmes d'ordre de lecture et d'écriture
    Par leup dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/07/2005, 10h36
  5. [XSLT] Problème de chemin d'accès + XSLT
    Par Jorus dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/09/2004, 08h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo