Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1426 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  passer et afficher un fichier xml à travers php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

passer et afficher un fichier xml à travers php

n°1702345
flope
Posté le 14-03-2008 à 12:05:19  profilanswer
 

bonjour.
je possède un logiciel qui génère des fichiers .xml
si je les ouvre dans firefox, l'affichage se passe normalement.
 
je souhaite sécuriser l'accès à ces fichiers, en identifiant le visiteur sur mon serveur web, et afficher le fichier xml s'il est correctement identifié.
 
mon fichier s'appelle 'index.php', et prend en paramètre la variable 'fichier' contenant le nom du fichier à passer. ce fichier est stocké dans un sous-dossier 'securite' interdit au public (deny from all dans le sous-dossier).
 
le source de mon fichier index.php est:
 
$contenu=file_get_contents("securite/".$fichier) or die("$fichier non trouvé" );
print $contenu;
exit;
 
donc un lien du type:
http://www.monsiteweb.fr/index.php?fichier=test.html
va afficher le fichier test.html qui est situé dans le sous-dossier 'securite'.
(tous les liens dans les fichiers html sont bien sur modifiés et pointent vers 'index.php?fichier=...'
 
ça fonctionne très bien pour des fichiers html, par contre, quand le fichier est un .xml, l'affichage est tout faux.
 
question: comment passer le contenu d'un fichier xml et l'afficher correctement avec php ?
 
merci de m'avoir lu. flope.

mood
Publicité
Posté le 14-03-2008 à 12:05:19  profilanswer
 

n°1702354
soju
One shot !
Posté le 14-03-2008 à 12:12:02  profilanswer
 

Avec le bon header ça devrait marcher :

Code :
  1. header('Content-Type: text/xml');


Attention, pense à la sécu dans ce genre de script

n°1702387
flope
Posté le 14-03-2008 à 13:08:48  profilanswer
 

non, j'ai déjà essayé, si j'ajoute:
header('Content-Type: text/xml');
il veut que j'enregistre le fichier, et ne l'affiche plus...

n°1702392
CyberDenix
Posté le 14-03-2008 à 13:22:48  profilanswer
 

Code :
  1. $contenu = file_get_contents("securite/".$fichier) or die("$fichier non trouvé" );
  2. echo htmlspecialchars($contenu);


 
Explications :
 
Ton xml n'a aucune information de style associée, donc il ne sera pas affiché (Un navigateur traite du html, ne l'oublions pas).
En utilisant htmlspecialchars, tu remplace les caractères liés aux balises ('<',...etc.) et tu forces ainsi l'affichage d'un flux de texte, considéré comme un document html archi-basique.


Message édité par CyberDenix le 14-03-2008 à 13:25:44

---------------
Directeur Technique (CTO)
n°1702396
flope
Posté le 14-03-2008 à 13:37:16  profilanswer
 

oula non, c'est pire...
là, oui, il affiche bien le contenu 'pur' du fichier demandé, mais sans l'interpréter.

n°1702413
soju
One shot !
Posté le 14-03-2008 à 14:24:25  profilanswer
 

oups c'est plutôt :

Code :
  1. header('Content-Type: application/xml');


n°1703243
flope
Posté le 17-03-2008 à 09:25:30  profilanswer
 

merci. application/xml fonctionne bien pour interpréter le xml.
j'ai encore d'autres problèmes, mais avec les fichiers .xsl
merci bien, ça me met sur la voie.
flope
 


Message édité par flope le 17-03-2008 à 09:26:57

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  passer et afficher un fichier xml à travers php

 

Sujets relatifs
[HTML]Construction de fichier HTML à la voléeCréer une fichier .mms
Comment afficher un <? ... ?> dans un echo?substitutions de valeurs dans un fichier
Interroger une BDD selon des critères pour afficher un résultat …copie de fichier
Afficher mon bandeauafficher une image selectionee dans base avec php
Boîte de dialogue pour copie d'un fichierGestion de code source à afficher sur une page (insertion code en bdd)
Plus de sujets relatifs à : passer et afficher un fichier xml à travers php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR