ecriture et lecture d'un fichier PHP qui génère du XML
Bonjour,
je développe actuellement un programme permettant d'envoyer des informations à un fichier PHP qui se trouve sur un serveur.
Ce fichier génère du XML en fonction des informations envoyées, puis mon programme récupère le XML.
problème : impossible de lire ce fameux fichier une fois écrit.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public void envoiRequete()
{
byte[] vars = Encoding.ASCII.GetBytes("os=7&archi=64&SP=1&version=0.1");
// Configuration de la requête (URL, méthode, etc)
WebRequest request = WebRequest.Create("https://XXX.XXX.com:443/monFichier.php");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = vars.Length;
// Ecriture des données
Stream dataStream = request.GetRequestStream();
dataStream.Write(vars, 0, vars.Length);
dataStream.Close();
XML test = new XML();
test.traitementXML(); |
voici la fonction de ma classe XML :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public bool traitementXML()
{
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("https://XXX.XXX.com:443/monFichier.php");
XmlNodeList xnList = xmlDoc.SelectNodes("/noeudParent/sousNoeud/sousSousNoeud");
foreach (XmlNode xn in xnList)
{
Console.WriteLine("informationAttendue = "+ xn["informationAttendue"].InnerText);
}
Console.WriteLine("ca marche");
return true;
}
catch
{
Console.WriteLine("erreur");
return false;
}
} |
et enfin, voici mon fichier php :
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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| <?php
try
{
//connection
$bdd = new PDO('mysql:host=localhost;dbname=nomDeMaBDD', 'nomUtilisateur', 'monMotDePasse');
//requete
$req = "SELECT * FROM maTable ";
$res = $bdd->query($req);
//CREATION DU DOCUMENT XML
//debut
$dom = new DOMDocument('1.0', 'utf-8');
header('Content-Type: application/xml');
header("Cache-Control: no-cache, must-revalidLogicielate");
header("Expires: Mon, 10 Jul 1990 05:00:00 GMT");
//creation du noeud parent
$root = $dom->createElement("noeudParent");
$root->setAttribute("version", "1.0");
$root = $dom->appendChild($root);
$sousNoeud = $dom->createElement("sousNoeud");
$sousNoeud = $root->appendChild($sousNoeud);
//sousSousNoeud
$sousSousNoeud = $dom->createElement("sousSousNoeud");
$sousSousNoeud = $sousNoeud->appendChild($sousSousNoeud);
//fin
while($tab_res = $res->fetch())
{
if($tab_res['os']==$_POST['os'])
{
if($tab_res['archi']==$_POST['archi'])
{
switch($_POST['SP'])
{
case 1 :
if($tab_res['version']!=$_POST['version'])
{
$text_version = $dom->createTextNode($tab_res['lien']);
$text_version = $sousSousNoeud->appendChild($text_version);
}
break;
case 2 :
if($tab_res['version']!=$_POST['version'])
{
$text_version = $dom->createTextNode($tab_res['lien']);
$text_version = $sousSousNoeud->appendChild($text_version);
}
break;
case 3 :
if($tab_res['version']!=$_POST['version'])
{
$text_version = $dom->createTextNode($tab_res['lien']);
$text_version = $sousSousNoeud->appendChild($text_version);
}
break;
case 4 :
if($tab_res['version']!=$_POST['version'])
{
$text_version = $dom->createTextNode($tab_res['lien']);
$text_version = $sousSousNoeud->appendChild($text_version);
}
break;
}
}
}
}
echo $dom->saveXML();
$bdd = null;
}
catch (Exception $e)
{
echo 'erreur de connection à la base de donnée : ', $e->getMessage(), "\n";
}
?> |
Je me suis demandé si le problème ne venait pas du fait que j'écris puis envoi mes informations, et les lis juste après (peut être que la lecture ne se fait pas parce que l'écriture n'est pas fini ?...).
bref, je suis perdu ^^
merci à l'avance
P.S. : merci de ne pas tenir compte du "manque de logique" de mon code PHP (surtout au niveau du switch) c'est un test.