Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOMXML
DOMXML Forum d'entraide pour l'extension DOMXML permettant de manipuler des documents XML en PHP 4 (approche DOM). Avant de poster -> tutoriels DOMXML
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 22/11/2006, 14h09   #1
Membre à l'essai
 
Inscription : novembre 2005
Messages : 127
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 127
Points : 21
Points : 21
Par défaut [XML][DomXML] problème d'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 :
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 :
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 :
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:
Citation:
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.
opeo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 12h42   #2
Membre à l'essai
 
Inscription : novembre 2005
Messages : 127
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 127
Points : 21
Points : 21
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 :
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 :
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:
Citation:
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.
opeo 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 23h28.


 
 
 
 
Partenaires

Hébergement Web