dxounet
Messages postés14Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention25 septembre 2008
-
12 sept. 2008 à 13:29
dxounet
Messages postés14Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention25 septembre 2008
-
25 sept. 2008 à 15:16
Bonjour bonjour la communauté,
J'essaie d'envoyer du contenu xml dans un fichier xml ! en meme temps que l'envoie par méthode POST.
J'ai fait un bout de code (ci-dessous) mais cela ne fonctionne pas. :
<?php
$filename = simplexml_load_file('2.xml');
if ( !function_exists('file_put_contents') && !defined('FILE_APPEND') )
{
if (file_exists($filename))
{
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 12 sept. 2008 à 16:39
Béh rajout des messages de debug dans ton code.
if(filexists...) {
echo "debuf file exists";
else {
echo "pb de fichier, ..";
}
...
remplace peut etre ton
file_put_contents('2.xml',$xml, FILE_APPEND) ;
par
file_put_contents($filename,$xml, FILE_APPEND) ;
Vous n’avez pas trouvé la réponse que vous recherchez ?
dxounet
Messages postés14Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention25 septembre 2008 12 sept. 2008 à 17:18
Oui je n'y avais pas pensé ! pourtant cest le béabah...
bref.
Oui il voit la fonction =>OK
par contre il ne voit pas le filename et passe par dessus le code jusqu'a mon else en fin de code qui me renvoie un echo "load file => NOK" .
Donc ca ne crée ni le 2.xml ni le modifie puisque cest comme ci y'avait pas de code ...
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 12 sept. 2008 à 17:27
if (file_exists('C:\Site-easyphp\2.xml'))
{ $filename simplexml_load_file('2.xml');> vérifie avec getcwd qui le répertoire courant est bien
C:\Site-easyphp\
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>' ;
$xml .= '' ; //écrit la valeur de la variable entre les balises
$xml .= '<Option Name="Pass">' . $donnees["crypte"] . '</Option>';
$xml .= '<Option Name="Group"/>';
$xml .= '<Option Name="Bypass server userlimit">0</Option>' ;
$xml .= '<Option Name="User Limit">0</Option>';
$xml .= '<Option Name="IP Limit">0</Option>';
$xml .= '<Option Name="Enabled">1</Option>';
$xml .= '<Option Name="Comments"/>';
$xml .= '<Option Name="ForceSsl">0</Option>';
$xml .= '';
$xml .= '<Disallowed/>';
$xml .= 'function.simplexml-load-file]: 2.xml:1: parser error : XML declaration allowed only at the start of the document in C:\Site-easyphp\envoixml.php on line 10
Warning: simplexml_load_file() [function.simplexml-load-file]: ?><?xml version ="1.0" encoding="ISO-8859-1"?><Option Name= in C:\Site-easyphp\envoixml.php on line 10
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 15 sept. 2008 à 10:31
A tu essayé d'ouvrir ton fichier xml avec ton navigateur web pour voir si la syntaxe de ton doc xml est bonne.
?><?xml version="1.0" encoding="ISO-8859-1"?><Option Name= in C:\Site-
> Cela laisse penser que tu as du code avant le "<?xml version..." alors que normalement c'est la première ligne
extraman1
Messages postés103Date d'inscriptionlundi 8 septembre 2003StatutMembreDernière intervention26 décembre 20092 15 sept. 2008 à 11:47
Salut,
Alors déjà quand tu fais un APPEND, il écrit à la suite du fichier, donc tu te retrouve avec X fois :
<?xml version="1.0" encoding="ISO-8859-1"?> dans ton fichier.
Du coup à la prochaine lecture de ton fichier, le fichier XML n'est plus un fichier valable. Donc la seule solution est que tu réécrives ton XML à chaque fois.
D'où ma question : pourquoi fais-tu un APPEND?
PS : Tu ne respectes pas la norme XML qui dis que les éléments et les attributs ne doivent pas comporter de majuscules, simple remarque^^
extraman1
Messages postés103Date d'inscriptionlundi 8 septembre 2003StatutMembreDernière intervention26 décembre 20092 15 sept. 2008 à 12:20
Salut,
Alors là c'est mal partie.
Explication XML :
<?xml version="1.0" encoding="ISO-8859-1"?> doit unique dans le fichier XML
Ensuite il ne doit possèder qu'une seul racine, toi ici ta racine c'est donc quand je lis ça, tu n'as qu'un fichier par user
Il te faut plus une architecture comme ça :
...
...
....
Ce que tu n'as pas là.
Donc pour résumer, il faut que tu fasses en sorte que <?xml version="1.0" encoding="ISO-8859-1" ?> soit unique, est qu'à chaque fois que tu écris dans ton XML, tu inséres à l'intérieur de
Etant ton code actuel, tu ne peux pas le faire de cette façon.
dxounet
Messages postés14Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention25 septembre 2008 15 sept. 2008 à 14:05
Ok je comprend.
Si je met :
<?xml version="1.0" encoding="ISO-8859-1"?>
contenu à mettre
Dans mon fichier 2.xml, lorsque je fait l'envoi de données pour la premiere fois, ca m'écrase tout.
si je réitère x fois, alors ca secrit à la suite, mais du coup : <?xml version="1.0" encoding="ISO-8859-1"?> n'est plus présent !
Comment je pourrais faire pour qu'il me laisse par défaut cette ligne
plus les 2 balises users et /users ?
dxounet
Messages postés14Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention25 septembre 2008 18 sept. 2008 à 11:45
Bon j'arrive à rien.
Même avec l'aide via http://fr.php.net/simplexml , je n'arrive pas à appliquer ce que je souhaite.
Une âme charitable aurait d'autres exemples concrets à m'apporter ?
Je suis preneur