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

Bibliothèques et frameworks PHP Discussion :

[DOM XML] Ouverture d'un fichier xml en php4


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 204
    Points : 79
    Points
    79
    Par défaut [DOM XML] Ouverture d'un fichier xml en php4
    Bonjour,
    j'ai un souci lors de l'ouverture d'un fichier xml fichier ayant été posté par un formulaire dans un champ caché.Voilà comment j'ai fait.
    Dans ma page page1.php j'ai ce script qui forme le flux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <script> 
       function majflux(){ 
          var xins = new ActiveXObject("MSXML.DOMDOcument"); 
          xins.async=false; 
     
          . 
          . 
          . 
          . 
          . 
          . 
          . 
          . 
          . 
          var xnoeud=xins.createElement("annonce"); 
          xnoeud.setAttribute("annonce",monannonce); 
          xins.documentElement.appendChild(xnoeud); 
     
          document.INSC.inscription_M.value=xins.xml; 
          document.INSC.submit(); 
     
       } 
    </script>
    lorsqu'on appel cette fonction (lors du click) il ya soumission du formulaire(action de page2.php) et lancement
    du flux(xins.xml) vers la page2.php(via le champ invisible inscription_M)
    j'ai testé le flux avec alert(xins) et j'ai ce flux:
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0"?> 
    <inscription> 
    <donnees pseudo="lobilo" pass="polka" typ="Inscription"/> 
    <quiva moi="UN HOMME" qui="UNE FEMME"/> 
    <coordonnees nom="modibo" prenom="pierre" telephone="05 61 58 08 33" adresse="22 rue des fleurest-31200 Toulouse" email="acotmpi@acotmpi.org"/> 
    <naisresidence datenais="06-06-1982" sfamiliale="Célibataire" nationalite="Bosniaque" residence="Allemagne"/> 
    <annonce annonce="Je recherche une vieille voiture de marque très rare qui me servira dans mes collections très avancées.Je vous remercie d'avance pour votre aide."/> 
    </inscription>
    Dans la page page2.php je souhaite donc récupérer le flux et l'ouvrir avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php 
        error_reporting(E_ALL); 
        $xflux=$_POST['inscription_M']; 
        if($xflux !=""){ 
            echo $xflux; 
            $dom=domxml_open_mem("$xflux") or die ("Impossible de l'ouvrir"); 
            //echo $dom; 
            //nouveau context ou document ? 
            $xpath = $dom->xpath_new_context();  
            echo $xpath; 
        } 
    ?>
    En faisant cela j'ai cette erreur:
    Warning: domxml_open_mem(): Input is not proper UTF-8, indicate encoding ! in c:\program files\easyphp1-8\www\bib69\inscription\inscription2.php on line 9

    Warning: domxml_open_mem(): Bytes: 0xE9 0x65 0x22 0x20 in c:\program files\easyphp1-8\www\bib69\inscription\inscription2.php on line 9
    Impossible de l'ouvrir
    Pourtant en faisant echo $xpath; j'ai le même flux que dans la page précédente(pour le voir j'ai fait Affichage->source sur la page ou il y a l'erreur).
    Ce qui est bizard c'est qu'il n ya aucune balise Input.
    Si vous pouvez m'aider cela m'avancerai beaucoup sur mon projet.
    Je vous remercie d'avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 204
    Points : 79
    Points
    79
    Par défaut
    re bonjour,
    comme personne ne viens à mon secour, j'ai tout repris mon code .
    Voilà je récupère les infos d'un inscrit et ces infos je les mets dans un flux xml.Ce flux est envoyé dans l'autre page par un champ caché du formulaire.Une fois récupéré, je l'ouvre et j'ajoute des infos dans le flux puis je fais une redirection dans une autre page et cette fois ci le flux est mis dans une variable de session qui est ouverte dans la page ou on est redirectioné.Voilà le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <?php 
    //Récupération du flux (par un champ caché) dans la variable $test_ins 
     
    $test_ins=$_POST['inscript_M']; 
     
     
     
     
     
    if($test_ins != ""){ 
     
        //INSCRIPTION 
     
        //ouverture du flux 
        $dom=domxml_open_mem("$test_ins") or die ("Impossible de l'ouvrir"); 
     
        //nouveau context ou document  
        $xpath = $dom->xpath_new_context();  
     
        //positionement sur les noeuds nommés connexion 
     
        $operations = $xpath->xpath_eval('/inscription/donnees'); 
     
        //Déclaration du Tableau pour récupérer les coordonnées d'inscription 
        $tab=Array(); 
     
        //parcours des noeuds 
        foreach ($operations->nodeset as $i => $operation)  
        {  
            //positionnement sur un noeud 
                $attributes = $operation->attributes();  
     
            //pour ce noeud parcours des attributs 
                foreach ($attributes as $k => $attribute)  
                {  
                    //echo 'node #', $i, ' ', $attribute->name, ' = ', $attribute->value, '<br />';  
     
                //Introduction des coordonnées d'inscription dans le tableau 
                $tab[$k]=$attribute->value; 
                }  
        }  
     
     
            $leps  = $tab[0] ; 
            $lepa  = $tab[1] ; 
            $lety  = $tab[2] ; 
     
            //test  
            if($leps=="montest"){ 
                echo erreur; 
            }else{ 
                session_start(); 
                    $_SESSION['inscription']=$dom; 
     
     
     
                //redirection vers la suite de l'inscription 
     
                header("Location:../Inscription/inscription1.php"); 
            } 
    } 
    ?>
    Page de redirection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    //Dans la page inscription1  
    <?php 
        session_start(); 
     
        //récupération de la variable de session 
     
        $inscript=$_SESSION['inscription']; 
        if($inscript !=""){ 
     
        echo $inscript; 
     
        //$dom=domxml_open_mem("$inscript",DOMXML_LOAD_PARSING,$error) or die ("Impossible de l'ouvrir"); 
            $dom=domxml_open_mem("$inscript") or die ("Impossible de l'ouvrir"); 
     
     
            //nouveau context ou document ? 
            $xpath = $dom->xpath_new_context();  
     
        } 
        exit; 
    ?>
    Voilà l'erreur affichée:
    Warning: domxml_open_mem(): Start tag expected, '<' not found in c:\program files\easyphp1-8\www\bib69\inscription\inscription1.php on line 14
    Impossible de l'ouvrir
    Remarque:
    "echo $inscript" affiche ceci : Object
    qui veut bien dire que $inscript contient le flux (peut être je me trompe ?)
    Comment je peux arriver à resoudre mon problème ?(récupérer les infos d'une page, les mettre dans un flux puis aller dans une autre page ouvrir ce flux puis l'alimenter ainsi de suite jusqu'à mettre ces informations dans la base quand tout se passe bien ?)
    Je vous remercie encore.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/12/2008, 13h38
  2. Réponses: 1
    Dernier message: 22/04/2008, 11h24
  3. Réponses: 3
    Dernier message: 06/08/2007, 03h44
  4. [DOM] (org.w3c.dom) copier un noeud d'un fichier XML dans un autre fichier XML
    Par snoop dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 13/02/2007, 17h22
  5. Importer le contenu un fichier xml dans un autre fichier xml
    Par gedeon555 dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/07/2005, 11h49

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