|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 60 ![]() |
Bonjour,
J'ai un probléme dans mon script.En effet,je veux uploader un fichier xml,puis enregistrer dans la table form_type sauvegarder quelques informations.Mon probléme est que je réussi à enregistrer le fichier dans un dossier particulier alors que je ne réussi pas à faire l'enregistrement des paramétres dans la table de la base de donnée. Pourriez vous m'aider à résoudre ce probléme? LA FONCTION de traitement de xml est: Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
BAM 350 lignes prends ça !
Bon pour commencer ce qui serait bien c'est que tu debug un tout petit peu pour nous faciliter la tâche (et aussi pour TE faciliter la tâche) histoire de savoir ou chercher. Dans un premier temps j'aurai tendance à te conseiller de mettre des die() juste avant tes save() afin de savoir si tu respectes bien toutes les conditions à chaque fois. De cette manière on saura si c'est le contenu de ton objet qui est mauvais ou si les conditions pour rentrer dans les blocs if qui ne sont pas respectés. Donc première chose : tu as 4 save(), es-tu bien sur de passer sur les 4 ? |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Ludovic Étudiant Inscription : janvier 2011 Messages : 124 ![]() |
Et Rasmus Lerdorf inventa (ou pas) les fonctions...
Sérieusement, pense à décomposer ton code en fonction parce que là, non seulement tu va avoir énormément de mal à débugger mais en plus le jour où tu voudra faire de la maintenance...tu achètera une corde. Je te conseille ce livre au passage : http://www.amazon.fr/Coder-proprement-Robert-C-Martin/dp/2744023272 PS : Ne vois rien de méchant dans ce message, c'est juste un conseil d'une personne qui est aussi passer par là. |
|
|
10
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 60 ![]() |
J'ai ajouté le die() avant chaque save,mais rien ne s'est passé.Mon code de la fonction de traitement du fichier xml est le suivant:
Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
Rien ne s'est passé donc à priori il ne rentre dans aucune de tes conditions. Aucun die('toto') ou die('test') n'est apparu ? (si jamais la fin de l'exécution de ton script mène à une page blanche et que tu as mis des die() sans message dedans tu ne verras pas la différence)
Ensuite ta variable $fieldTypeNewRecord a l'air de servir un peu à tout et n'importe quoi, d'abord c'est un booleen, ensuite tu lui donnes un champ text ou int, et ensuite tu lui passes un objet. En matière de bonnes pratiques on a vu mieux. Par contre si tu souhaite afficher son contenu au moment du die, un die($fieldTypeNewRecord); ne fonctionnera pas si c'est un objet. Tente plutôt un Maintenant le but est de vérifier à partir de quel bloc "if" tu bloques. Donc pour chacun de tes save(), tu vas mettre un die() après chaque condition if et foreach possible dans lequel il est imbriqué et dans lequel il doit passer, puis les retirer les uns après les autres afin de savoir quelle condition n'est pas respectée. Une fois que tu sauras sur quelle condition tu bloques, il s'agira alors de dumper les résultats que tu compares et voir s'ils correspondent bien aux résultats attendus. Si c'est le cas, c'est peut-être ta condition qui est mauvaise, sinon c'est que les données qui te sont envoyées ont un souci. Debugger c'est toujours plus facile quand on sait sur quelle ligne ça bloque et c'est précisemment ce qu'on te demande pour pouvoir t'aider. |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 60 ![]() |
Bonjour,
J'ai passé quelques jours pour bien comprendre le code développé.Mon but est d'enregistrer les donner dans une table.Le probléme est que le chargement du fichier ne se fait pas:c'est à dire que à partir de: Code :
$xml = simplexml_load_file(sfConfig::get('sf_upload_dir').'/tmpUpload/xml/'.$fileName);//on charge le fichier |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
Est-ce que l'attribut $filename est bien renseigné au moment de l'appel de la méthode processXmlFile ?
Fais un pour voir déjà s'il est renseigné, si tu n'as pas oublié l'extension du fichier ou ce genre de détails... Il serait judicieux également de remplacer le chemin de ton simplexml_load_file par le chemin en dur pour être sur que c'est juste la génération du path qui bloque et non le fichier xml par exemple. |
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 60 ![]() |
J'ai vérifié avec:
Code :
Qu'est ce que je doit faire pour que le traitement sera appliqué à ce fichier(enregistrement de son contenue dans la base de donnée? |
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 60 ![]() |
Est il possible que le probléme est du à
Code :
$xml = simplexml_load_file(sfConfig::get('sf_upload_dir').'/tmpUpload/xml/'.$fileName); Comment je peux résoudre ceci? |
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
Si ton script s’arrête sur cette ligne comme tu l'as dit précédemment, il y a de grandes chances pour que cette ligne soit responsable de ton problème !
Essaye comme je te l'ai dit de mettre le path de ton fichier en dur et vois si ça bloque toujours (et au passage, compare le avec ce que TOI tu génères comme chemin). |
|
|
00
|
|
|
#11 | ||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 60 ![]() |
J'ai essayé avec
Code :
|
||
|
|
00
|
|
|
#12 | ||
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
Bon visiblement tu as l'air un peu perdu sur ta ligne et tu ne comprends pas bien ce que tu fais alors essaye donc voir ça :
Code :
Ou bien tu ne rentres pas dans le if c'est que ton fichier n'existe pas à cet endroit ou est illisible et dans ce cas c'est le fichier même qui est à remettre en cause. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com