Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1023 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Probleme simpleXML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme simpleXML

n°1844897
solarius
Posté le 29-01-2009 à 17:35:20  profilanswer
 

Bonjour,
 
J'ai un gros soucis avec simpleXML.
En effet en local mon script fonctionne parfaitement, en revanche quand il est en ligne il fonctionne une fois sur 2...
Quand ce la ne fonctionne pas il ne m'affiche pas d'erreur mais seulement une page blanche comme si le script s'était arrêté de fonctionner tout de suite.
 
Voici mon script et cela vient de la ligne en rouge car si je commente tout sauf celle la le bug persiste.
 

Citation :

<?php
$chemin_xml = 'http://www.maximeladra.com/synchro_elab/xml/contacts.xml';
$liste = simplexml_load_file($chemin_xml);
 
foreach( $liste->contact as $contact)
 
{
 
 $prenom = $contact->prenom;
 $nom = $contact->nom;
 $dept = $contact->dept;
 $tel_dom = $contact->tel_dom;
 $tel_pro = $contact->tel_pro;
 $fax = $contact->fax;
 $adresse = $contact->adresse;
 $ville = $contact->ville;
 $cp = $contact->cp;
 $pays = $contact->pays;
 $login = $contact->login;
 $id = $contact->id;
 
echo $prenom;
echo $login;
 
}
 
?>


 
 
Merci d'avance pour votre aide !

mood
Publicité
Posté le 29-01-2009 à 17:35:20  profilanswer
 

n°1844901
omega2
Posté le 29-01-2009 à 17:40:38  profilanswer
 

Essaye en rajoutant le code ci dessous juste après le <?php :

Code :
  1. error_reporting(E_ALL);


Ca ne corrigera pas ton problème mais ça t'affichera au moins les erreurs et warning s'il y en a.
 
Existe aussi en variante encore plus stricte :

Code :
  1. error_reporting(E_ALL | E_STRICT);

n°1844907
solarius
Posté le 29-01-2009 à 17:47:39  profilanswer
 

Aucune erreur affiche lorsque ça ne fonctionne pas.
Que dois je faire lol?


Message édité par solarius le 29-01-2009 à 17:48:02
n°1844908
aspirateur
Posté le 29-01-2009 à 17:49:34  profilanswer
 

Et en faisant ca:
$liste = simplexml_load_file('$chemin_xml');  
 
J'ai rajouté les '

n°1844912
solarius
Posté le 29-01-2009 à 18:00:58  profilanswer
 

Non cela ne fonctionne pas.
De plus il faut mettre les apostrophes quand on a un champs un caractères et non une variable^^

n°1844915
omega2
Posté le 29-01-2009 à 18:04:35  profilanswer
 

aspirateur a écrit :

Et en faisant ca:
$liste = simplexml_load_file('$chemin_xml');  
 
J'ai rajouté les '

En faisant ça, il va essayer de lire le fichier qui s'appelle "$chemin_xml".
 
solarius > Fait un var_dump ou un print_r de $liste pour voir si t'as reçu quelque chose et si t'as reçu quelque chose, ce que t'as reçu.
 
 
Si tu vois qu'en fait ça n'arrive même pas au var_dump ou au print_r alors essaye de rajouter le code suivant juste après l'autre ligne.

Code :
  1. ini_set('default_socket_timeout',20);


Si ça marche, ça mettra une durée plus petite dans le temps d'attente maximum de la réponse de l'autre serveur et ça te permettra d'avoir toi même des infos si c'est un problème de timeout.

n°1844929
solarius
Posté le 29-01-2009 à 18:17:48  profilanswer
 

Toujours le même problème.
 
Meme si je met juste çà:
 

Citation :

<?php
$liste = simplexml_load_file('$chemin_xml');
//ici une redirection header('Location .....  
?>


 
Toujours le même problème, rien ne se passe une fois sur deux.
Ca vient vraiment de cette fichu ligne : $liste = simplexml_load_file('$chemin_xml');
 
Une autre idée?

n°1844930
omega2
Posté le 29-01-2009 à 18:34:38  profilanswer
 

A par le coup du ini_set, je vois pas quoi faire de plus.


Message édité par omega2 le 29-01-2009 à 18:35:01
n°1844932
solarius
Posté le 29-01-2009 à 18:43:06  profilanswer
 

Existe t'il un autre moyen de charger se XML ou peut être une solution pour le télécharger d'abord sur le bon serveur avant de charger dans le script mais la je ne sais pas du tout comment m'y prendre.

n°1844938
CyberDenix
Posté le 29-01-2009 à 18:48:57  profilanswer
 

Ouais, tu as la méthode load_string ou un truc dans le genre. Bref tu fais file_get_contents de ton chemin, tu mets ca dans une string, tu peux afficher la string pour vérifier que tout est correct, puis tu balances ca en parametre à la méthode load_string.


---------------
Directeur Technique (CTO)
mood
Publicité
Posté le 29-01-2009 à 18:48:57  profilanswer
 

n°1844954
solarius
Posté le 29-01-2009 à 19:20:22  profilanswer
 

Bon j'ai importer le XML sur le bon serveur et cela fonctionne j'essaye de mettre au point un script qui télécharge le XML sur le serveur dans un dossier spécifique.
 
Cette ligne de code lance automatiquement le téléchargement du fichier mais je voudrais quelques chose de bien plus pousser comme par exemple que le fichier se télécharge directement dans un dossier prédéfinie.
Comment faire?
 

Citation :

header("Content-disposition: attachment; filename=http://www.maximeladra.com/synchro_elab/xml/contacts.xml" );

n°1844969
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 29-01-2009 à 20:27:22  profilanswer
 

Si page blanche et pas d'erreur affichée ça peut venir d'un problème de la capacité de mémoire allouable (par défaut 128 Mo je crois).
Augmente là à 256 Mo soit dans le php.ini, soit par init_set.

n°1844972
solarius
Posté le 29-01-2009 à 20:38:03  profilanswer
 

Non ça de vient pas de la, le fichier et tout petit et j'ai déjà augmenter la mémoire pour voir.

n°1844995
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 29-01-2009 à 21:50:06  profilanswer
 

solarius a écrit :

Non ça de vient pas de la, le fichier et tout petit et j'ai déjà augmenter la mémoire pour voir.


 
A combien?
 
sinon ajoute ces lignes en début de script :
ini_set('display_errors','1');
ini_set('display_startup_errors','1');
error_reporting (E_ALL);

n°1845008
solarius
Posté le 29-01-2009 à 22:21:00  profilanswer
 

Aucune erreur^^
 
Problème vraiment gênant pour moi...

n°1845017
omega2
Posté le 29-01-2009 à 22:45:27  profilanswer
 

solarius a écrit :

Bon j'ai importer le XML sur le bon serveur et cela fonctionne j'essaye de mettre au point un script qui télécharge le XML sur le serveur dans un dossier spécifique.
 
Cette ligne de code lance automatiquement le téléchargement du fichier mais je voudrais quelques chose de bien plus pousser comme par exemple que le fichier se télécharge directement dans un dossier prédéfinie.
Comment faire?
 

Citation :

header("Content-disposition: attachment; filename=http://www.maximeladra.com/synchro_elab/xml/contacts.xml" );



Regarde du côté de CURL. Ca demande un peu plus de code mais ça permet de récupérer des fichiers. par contre comme simplexml_load_file marche une fois sur deux, je ne sais pas si ça sera une solution efficace.

n°1845029
solarius
Posté le 29-01-2009 à 23:20:33  profilanswer
 

En faite si le fichier XML est sur le serveur même alors simplexml_load_file marche a chaque fois.
 
J'ai donc fait le code suivant que j'ai testé en local et sur mon deuxième hébergeur perso (1&1) pour récrire le contenue de l'XML du serveur et cela fonctionne parfaitement sauf sur le serveur ou je doit travailler...
Cela ne viendrais pas de quelques chose non activé dans le php.ini?
j'ai vérifier pour allow_url_fopen et c'est bien activé mais il y a peut être autre chose?
 
 

Citation :


<?php
function CopieFichier($Source, $Destination)
{
    $Fichier = fopen ($Source, "r" );
 
    $ContenuFichier ='';
 
    while (!feof($Fichier)) $ContenuFichier .= fread($Fichier, 8192);
    fclose ($Fichier);
 
    $Fichier = fopen ($Destination, "w+" );
 
    if ( !fwrite($Fichier, $ContenuFichier)) die('Impossible d\'écrire dans le fichier');
 
    fclose ($Fichier);
}
 
CopieFichier('http://www.maximeladra.com/synchro_elab/xml/contacts.xml', 'xml/contacts.xml');
?>

n°1845033
omega2
Posté le 29-01-2009 à 23:30:44  profilanswer
 

Si c'était désactivé, ça ne marcherait jamais donc c'était forcément activé. ;)
Par contre qu'est ce qui pourrait faire que ça ne marche qu'une fois sur deux, je ne vois pas.

n°1845081
solarius
Posté le 30-01-2009 à 09:20:08  profilanswer
 

Hey ça m'affiche une erreur quand je suis connecté depuis l'iut, et c'est là bas qu'il y a le serveur !
 

Citation :

ERROR
The requested URL could not be retrieved
 
While trying to retrieve the URL: http://147.210.152.201:10000/sugar [...] /index.php
 
The following error was encountered:
 
    * Zero Sized Reply  
 
Squid did not receive any data for this request.
 
Your cache administrator is colnay@iut.u-bordeaux3.fr.
Generated Fri, 30 Jan 2009 08:14:22 GMT by IUTsquid@iut.u-bordeaux3.fr (squid/2.6.STABLE6)

n°1845102
solarius
Posté le 30-01-2009 à 10:44:36  profilanswer
 

Problème entièrement résolu, tout fonctionne parfaitement.
Cela était du au serveur apache qui fonctionnait très mal.
Nous avons redémarrer le serveur aujourd'hui ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Probleme simpleXML

 

Sujets relatifs
problème requete sql sous oracleoracle
Problème prévention données, visual Studio 2008 + .net + vista SP1Probleme de lieur
problème de dateProbleme changement banniere flash (php-nuke)
Problème de requête....[Résolu] Problème de character set XML et PHP (SimpleXML)
[resolu] simplexml - suppression d'elements - probleme avec unset?probleme avec simplexml
Plus de sujets relatifs à : Probleme simpleXML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR