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

Langage PHP Discussion :

XML/Attribut réponse différente entre Local/FTP


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 9
    Points
    9
    Par défaut XML/Attribut réponse différente entre Local/FTP
    Bonjour à tous.
    Je développe un projet utilisant un fichier XML.
    Jusqu'à présent pas de soucis.
    En Local, cette ligne marche normalement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="...?id='.$coll->getAttribute("titre").'">'.$coll->nodeValue.'</a></br>' ;
    ($coll étant la variable de mon foreach).
    Voici le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="...?id=1">Aventures à remonter le temps</a>
    Mais lorsque je le passe en prod j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="...?id=">Aventures à remonter le temps</a>
    Comme vous pouvez le constater, le getAttribute() ne donne plus le résultat.

    Si je clique quand même sur le lien, et que je rajoute à la main ce qui est supposé être en GET, la page fonctionne correctement (mais c'est pas le but bien entendu).
    J'avoue avoir épuisé mon stock de logique sur ce problème. C'est semble-t-il le seul endroit où ça coince et je suis dépourvu de solution, c'est pourquoi j'en appelle à votre aide pour une possible solution (sûrement simple) mais qui m'échappe totalement, d'autant que tout ce que je passe dans l'URL fonctionne correctement ailleurs. Seul ce getAttribute() fait des siennes...

    Merci d'avance, et bonne fin de journée.

    EDIT : N'ayant pas accès au FTP, la MaJ n'est pas encore faite mais il est fort probable pour que l'erreur vienne du fichier XML qui n'était pas pas à jour sur le serveur... Je mettrais résolu si ça venait bien de la. Désolé pour le dérangement.

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 894
    Points : 6 648
    Points
    6 648
    Par défaut
    Difficile de te dire grand chose vue que les données que tu donnes sont plutôt limitées. Néanmoins quelques remarques:

    - pour ce qui est de ton problème, d'après ce que tu montres $coll est un objet DOMNode et c'est bien le cas que ce soit pour ta version locale ou prod. La preuve $coll->nodeValue renvoie bien la même chose dans les deux cas. Par contre en version "prod", $coll->getAttribute("titre") est une chaîne vide alors qu'en version local 1 est renvoyé. Conclusion, il ne faut pas chercher midi à 14h, les fichiers XML version locale et version prod sont différents, celui en "prod" a soit un attribut "titre" vide ou n'en a pas du tout, ou alors il faut regarder ton code plus en amont pour voir si les nœuds en question sont biens les mêmes (celui en prod, pour une raison x, pourrait être un nœud descendant ou ancêtre du nœud $coll en local avec le même nœud texte descendant en commun, c'est à dire "Aventures à remonter le temps"). (NB: tu peux déterminer si au moins l'attribut "titre" existe en utilisant la méthode $coll->hasAttribute("titre").)

    - Tu tentes visiblement de créer du contenu html à partir d'informations stockées dans un fichier XML. La manière dont tu t'y prends (ie: en passant par des manipulations de chaînes de caractères) n'est pas considérée comme super propre. Néanmoins, j'admets qu'elle est défendable pour ce qui est du peu de ressources et de moyens qu'elle exige. Par contre, ses principaux points faibles sont qu'elle peut paraître incongrue dans la mesure où l'on passe du XML au HTML (ce qui peut se faire par un autre biais), ou qu'à aucun moment un garde-fou n'intervient pour vérifier la validité de ce que tu génères.

    En effet, pour passer du XML au HTML en sélectionnant juste les informations qui t'intéressent, tu peux utiliser le XSLT. Ça peut paraître un peu ardu au premier abord (car ça demande de l'apprentissage) mais c'est une voie assez logique.

    Pour ce qui est de la deuxième approche (avec garde-fou): puisque tu sais utiliser DOMDocument, pourquoi ne pas t'en servir pour générer ton contenu HTML? Avec lui, tu es sûr de générer du HTML valide.

    Si maintenant tu tiens absolument à utiliser une approche du type manipulation de chaîne de caractères pour des raisons de performance, je te conseille de lire ton fichier XML à l'aide de XMLReader au lieu de DOMDocument. (plus rapide, moins de consommation mémoire)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Merci bien pour les Tips !
    Concrètement, si j'ai utilisé ces options c'est parce que le projet m'a été confié comme cela : "Notre développeur nous l'a mis à l'envers, il nous reste 1 mois pour tout développer (et à partir de 0 s'il vous plait, vu que le type n'a rien fait). Vu qu'on ne te connait pas, tu n'auras pas accès au serveur, et tu peux oublier la base de données, on en a pas". Donc Deal with it, j'ai pris les ressources que je connaissais "de nom" vu que je n'avais jamais travaillé sur du XML auparavant (sauf dans mes quelques cours PHP, mais qui remontent maintenant à quelques années et le nombre d'heures se comptent sur les doigts d'une main), et j'ai appris via différents tuto (ici et ailleurs) pour mettre en place quelque chose de rapide à développer parce que je n'avais clairement pas le temps de faire ce que l'on me demandait de faire dans les temps impartis (tout du moins je ne m'en sentais pas capable) si j'avais cherché les meilleurs ressources pour le faire. Donc je ne tiens pas "absolument a" faire quelque chose en particulier, puisque je cherche souvent à faire le meilleur de ce que je peux faire si j'ai le temps de le faire, mais la c'était surtout "je n'ai ni le temps, ni les connaissances approfondies pour quelque chose de qualitatif, donc fais au mieux".

    Je n'ai toujours pas de réponse de la personne qui gère le serveur (donc je ne sais toujours pas si c'est ça, et comme rien n'a été mis à jour sur le site j'en déduis que les changements n'ont toujours pas été fait), mais oui, il y a de fortes probabilités pour que ce soit ça.

    Concernant le XSLT j'avais lu de biais quelques articles, les deux trois tests que j'ai fait en parallèle de DOMDocument m'ont fait me tourner vers cette dernière. Moins puissante de prime abord, mais aussi moins compliqué. Maintenant j'aurais eu 6 mois, nul doute que j'aurais tenté ma chance avec le premier cité. Je note aussi pour XMLReader je viens d'aller faire un tour, je testerais ça à l'occasion maintenant que j'ai du temps. J'l'avais vu mentionné à certains endroits, mais j'avais pas pris le temps de regarder ce que c'était.

    Par contre, je n'ai pas compris votre question concernant la génération du HTML via DomDocument.

Discussions similaires

  1. [Wordpress] Affichage différent entre local et en ligne
    Par benoitldr dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 05/10/2014, 13h29
  2. Réponses: 3
    Dernier message: 29/01/2014, 11h42
  3. Comportement différent entre local et serveur
    Par kraps dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/03/2011, 15h16
  4. [ASCII] Codes différents entre 2 logiciels
    Par MinsK dans le forum Assembleur
    Réponses: 3
    Dernier message: 20/04/2004, 09h34
  5. Réponses: 2
    Dernier message: 17/05/2002, 20h37

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