Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/08/2007, 02h15   #1
 
Homme Pierrick Charlebois
Inscription : avril 2005
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Pierrick Charlebois
Localisation : Canada

Informations forums :
Inscription : avril 2005
Messages : 61
Points : -3
Points : -3
Envoyer un message via MSN à Pierrick584
Par défaut [SimpleXML] Compte utilisateur en fichier xml

Bonjour, dans mon site, les compte utilisateur sont sauvegardé dans des fichier, la raison etant que c'est un site pour un serveur d'un jeux qui garde ses info en fichier xml, donc je doit utiliser des fonction pour travailler les fichier xml, principalement en créé a partir de zéro (créé les compte) lire certaine valeur (vérification du mot de passe) changer ces valeur (changer le mot de passe) et rajouter des donnée a certain endroit (rajouter des personage a l'account, le site etant celui d'un jeux) j'ai chercher un bout de temp pour des fonction pouvant manipuler les fichier, mais aucune ne semblais etre complette et pouvant répondre a tout mes besoin, donc j'aimerais avoir des conseille sur comment m'y prendre
Pierrick584 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 02h39   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Tu peux tout à fait manipuler tes fichiers XML avec SimpleXML ou DOM.
Si tu n'arrives pas à faire qque chose alors détaille
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 03h15   #3
 
Homme Pierrick Charlebois
Inscription : avril 2005
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Pierrick Charlebois
Localisation : Canada

Informations forums :
Inscription : avril 2005
Messages : 61
Points : -3
Points : -3
Envoyer un message via MSN à Pierrick584
j'ai essayer simpleXML et j'ai une erreur.. :\ sa n'arrive pas a ouvriire mon fichier
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
require "serverinfo.php";
$account = $_POST['account'];
$password = $_POST['password'];
$accountxml = $account . "xml";
$fileaccountdir = $accountdir . $accountxml; // $accountdir est une variable dans serverinfo.php qui définit le chemin complet pour accédé au dossier contenant tout les account
 
if (file_exists($fileaccountdir)) {
    $fileaccount = simplexml_load_file($fileaccountdir);
	$xml = new SimpleXMLElement($fileaccount);
 
echo $xml->account[0]->pass;
 
    var_dump($xml);
} else {
    exit('Echec lors de l\'ouverture du fichier test.xml.');
}
les account sont tous fait sous cette forme (au cas ou sa peut aider)
Code xml :
1
2
3
4
5
6
<?xml version="1.0"?>
  <account pass="motdepasse" premDays="0" premEnd="0">
    <characters>
      <character name="nomdepersonage" />
    </characters>
  </account>
Pierrick584 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 08h03   #4
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Hello,

Et ou s'arrete le script ?
Si il s'arrete ici :
Code :
1
2
3
4
 
else {
exit('Echec lors de l\'ouverture du fichier test.xml.');
}
Essaie de changer la condition et met ceci :
Code :
1
2
3
4
5
 
else {
echo $fileaccountdir . '<br>';
exit('Echec lors de l\'ouverture du fichier test.xml.');
}
Cela te permettra de voir ou il va chercher le fichier....

@+
cadou
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 08h34   #5
 
Homme Pierrick Charlebois
Inscription : avril 2005
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Pierrick Charlebois
Localisation : Canada

Informations forums :
Inscription : avril 2005
Messages : 61
Points : -3
Points : -3
Envoyer un message via MSN à Pierrick584
bon, j'ai fait ca et j'ai vue que la variable de l'account n'etais pas pris correctement, allor j'ai tout modifier dans une seule page (la page de connection redirigeais vers une page de vérification) et ca donne une autre erreur, voici le nouveau code source suivis de l'erreur

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
require "serverinfo.php";
$account = $_POST['account'];
$password = $_POST['password'];
$accountxml = $account . ".xml";
$fileaccountdir = $accountdir . $accountxml; // $accountdir est une variable dans serverinfo.php qui définit le chemin complet pour accédé au dossier contenant tout les account
 
 
 
if ($account && $password != null)
{
 
if (file_exists($fileaccountdir)) {
    $fileaccount = simplexml_load_file($fileaccountdir);
	$xml = new SimpleXMLElement($fileaccount);
 
echo $xml->account[0]->pass;
 
    var_dump($xml);
} else {
	echo $fileaccountdir . '<BR>';
    exit('Echec lors de l\'ouverture du fichier test.xml.');
}
}
else
{
echo '<CENTER>
<FORM method="post" action="connection.php">
Account: <input type="password" name="account"><BR><BR>
Password: <input type="password" name="password"><BR><BR>
<input type="submit" value="valider">';
}
Citation:
Warning: simplexml_load_file() [function.simplexml-load-file]: file:///C%3A/tibiaserver/data/accounts/1428616.xml:1: parser error : Extra content at the end of the document in C:\wamp\www\connection.php on line 14

Warning: simplexml_load_file() [function.simplexml-load-file]: er name="Rowan Kartoffel" /><character name="Sorctest" /></characters></account> in C:\wamp\www\connection.php on line 14

Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in C:\wamp\www\connection.php on line 14

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\wamp\www\connection.php:15 Stack trace: #0 C:\wamp\www\connection.php(15): SimpleXMLElement->__construct('') #1 {main} thrown in C:\wamp\www\connection.php on line 15
et le contenu exact du fichier que j'essai d'ouvrire est
Code xml :
1
2
3
4
5
6
7
8
9
<?xml version="1.0"?>
  <account pass="potato666" premDays="0" premEnd="0">
    <characters>
      <character name="An unknow Wanderer" />
      <character name="Druidtest" />
      <character name="Rowan Kartoffel" />
      <character name="Sorctest" />
    </characters>
  </account>
Pierrick584 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 11h20   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Code :
    $xml = simplexml_load_file($fileaccountdir);
Au lieu de :
Code :
1
2
    $fileaccount = simplexml_load_file($fileaccountdir);
	$xml = new SimpleXMLElement($fileaccount);
Devrait suffir, non ?

A priori, il y a des erreurs dans votre fichier XML : est-il complet ci-dessus ? Si vous n'utilisez pas de l'UTF-8, rajoutez l'encodage.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 18h47   #7
 
Homme Pierrick Charlebois
Inscription : avril 2005
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Pierrick Charlebois
Localisation : Canada

Informations forums :
Inscription : avril 2005
Messages : 61
Points : -3
Points : -3
Envoyer un message via MSN à Pierrick584
j'ai effacer le "superflux" comme Julp me l'as conseiller, maitenant sa me sort une page blanche en tout temp, meme a la premiere ouverture de la page..

pour ce qui est de l'encodage, je ne conais pas tres bien le XML mais chose sur, je ne peut pas rajouter rien dans le fichier (excepter d'autre character et changer les valeur préexistante) sinon l'account ne fonctionne plus in-game, j'avais essayer de faire d'autre valeur pour les information du website question de stoquer les information personnel, et ect, mais sa ne marchais pas, il va faloir que je travaille avec ce fichier, et un autre pour les information du site. donc pour faire court, je ne pourai rajouter l'encodage
Pierrick584 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 19h24   #8
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
La récupération de la valeur de l'attribut pass est erronée :
Code :
echo $xml->account[0]['pass'];
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 21h54   #9
 
Homme Pierrick Charlebois
Inscription : avril 2005
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Pierrick Charlebois
Localisation : Canada

Informations forums :
Inscription : avril 2005
Messages : 61
Points : -3
Points : -3
Envoyer un message via MSN à Pierrick584
bon, mon formulaire marche a nouveau, mais il y a une erreur

Warning: simplexml_load_file() [function.simplexml-load-file]: file:///C%3A/tibiaserver/data/accounts/1428616.xml:1: parser error : Extra content at the end of the document in C:\wamp\www\connection.php on line 14

Warning: simplexml_load_file() [function.simplexml-load-file]: er name="Rowan Kartoffel" /><character name="Sorctest" /></characters></account> in C:\wamp\www\connection.php on line 14

Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in C:\wamp\www\connection.php on line 14
NULL

encore ca..

si ce serais le fichier xml qui serais réellement "mal fait" sa voudrais dire que je doit utiliser une fonction qui lis dans le fichier sans se préocuper du type de fichier ou rien, et que je doit trouver le string <account pass="potato666" et effacer/traiter le superflux pour en extraire le mot de passe, ou bien trouver un moyen que simplexml, ou autre fonction de xml, traite bien mon fichier sans erreur ?
Pierrick584 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h42.


 
 
 
 
Partenaires

Hébergement Web