Load d'un fichier XML

Neroc
Invité n'ayant pas de compte PHPfrance

19 avr. 2010, 22:42

Bonjour,
je suis débutant en php, et je cale un peu la. Alors pendant qu'il me reste encore un peu de cheveux je me décide à venir vous demander de l'aide ;)

Alors mon (petit ?) problème :
j'essaye de charger un fichier XML. Jusque la pas de problème la fonction load et save marche parfaitement lorsqu'il s'agit d'un fichier XML classique. Mais la ou ça ce complique c'est que mon fichier XML est fait à la volée (j'ai besoin d'une clé d'authentification qui change a chaque foi pour le générer).
Et la impossible de charger ce fichier. j'ai bien cherché sur le net mais je ne trouve rien qui puisse m'aider.
Voila le code que j'utilise :
<?php
$dom = new DomDocument("1.0");
$dom->load("http://192.168.1.30/ampache/server/xml.server.php?action=songs&auth=efc3483fb97f00f16a21cb3388fcced2");
$dom->encoding="iso-8859-1";
$dom->save('tmp/songs.xml');
?>
J'espère que vous pourrez m'aider.
D'avance merci, et bonne soirée.
---
Neroc

ViPHP
ViPHP | 5462 Messages

19 avr. 2010, 22:56

hello, tu pourrais la récupérer ou la clé ?

Neroc
Invité n'ayant pas de compte PHPfrance

19 avr. 2010, 23:02

C'est de la réponse rapide ici ;) Merci deja.

Pour la clé j'y vais progressivement, mais après le but c'est de la récupérer de la même façon d'un fichier xml avec quelque chose dans le genre j'imagine :
    $keys = $value->getElementsByTagName("auth");

ViPHP
ViPHP | 5462 Messages

19 avr. 2010, 23:08

si c'est comme ca tu feras
$keys = $value->getElementsByTagName("auth");
/*
...
*/
$dom->load("http://192.168.1.30/ampache/server/xml.server.php?action=songs&auth=$keys");

Petit nouveau ! | 8 Messages

19 avr. 2010, 23:14

D'accord.
Mais ca me charge toujours pas le fichier xml. mon fichier /tmp/songs.php est toujours vide.
Alors que si je prends un fichier xml déjà généré la ca marche.

ViPHP
ViPHP | 5462 Messages

19 avr. 2010, 23:15

D'accord.
Mais ca me charge toujours pas le fichier xml. mon fichier /tmp/songs.php est toujours vide.
Alors que si je prends un fichier xml déjà généré la ca marche.
trouve un moyen de récupérer la clé et ca marchera,
ou est ton lien a la base ?

Petit nouveau ! | 8 Messages

19 avr. 2010, 23:18

Ben la en faite pour les tests je mets la clé manuellement, si je passe mon lien dans le navigateur je récupère bien le xml, mais avec le load en php la ça marche pas.

ViPHP
ViPHP | 5462 Messages

19 avr. 2010, 23:21

Ben la en faite pour les tests je mets la clé manuellement, si je passe mon lien dans le navigateur je récupère bien le xml, mais avec le load en php la ça marche pas.
ouai ton navigateur dois avoir garder la session. mais php c'est un autre client ton ca marche pas comme ca

Petit nouveau ! | 8 Messages

19 avr. 2010, 23:27

Normalement de ce que j'ai compris avec l'api d'ampache, une foi la clé reçu pas besoin d'authentification, c'est elle qui gère tout. La clé est ajouté dans un système de gestion des accès sur le serveur.
All future interactions with the Ampache API must include the TOKEN as a get variable named 'AUTH'.
edit :
mais comme je m'auth avec le navigateur et que dans l'autre cas je suis direct sur le serveur je dois effectivement pas etre ajouté avec la même ip.
Bon j'essaye la récupération directe.
MERCI beaucoup ;)

Petit nouveau ! | 8 Messages

20 avr. 2010, 00:08

Je récupère toujours pas les xml, je comprend vraiment pas. Le load marche pour un test.xml présent à la racine, mais pas pour le $url.
Pourtant le echo me donne la bonne url qui va bien, et la l'authentification ne joue pas.
<?php

$time = time();
$user = 'admin';
$key = hash('sha256','*********');
$passphrase = hash('sha256',$time . $key);

$url = "http://localhost/ampache/server/xml.server.php?action=handshake&auth=$passphrase&timestamp=$time&version=350001&user=$user";

$doc = new DomDocument("1.0");
$doc->load($url);
...
echo "url= ".$url;
print htmlspecialchars($doc->saveXML());

ViPHP
ViPHP | 5462 Messages

20 avr. 2010, 00:16

fais un
echo htmlentities(file_get_contents($url));
pour voir

Petit nouveau ! | 8 Messages

20 avr. 2010, 00:20

rien, désolé :(

ViPHP
ViPHP | 5462 Messages

20 avr. 2010, 00:23

tu devrais rececoir un XML avec ton auth dedans

Petit nouveau ! | 8 Messages

20 avr. 2010, 00:26

Ben ouai, la je comprends vraiment pas. Bon je laisse tomber pour ce soir ;)
Je verrai demain pour chercher ce qui cloche (certainement un problème entre la chaise e le clavie comme d'habr)

Merci beaucoup pour ton aide et ta patience en tous cas.

Bonne soirée.

Petit nouveau ! | 8 Messages

20 avr. 2010, 11:01

J'ai enfin trouvé, et je pense être en bonne voie pour le titre de boulet du jour. :oops:
J'avais en effet "oublié" d'activer l'option fopen dans mon php.ini, ce qui forcement est un peu gênant ...

Donc le problème est résolu et tout marche maintenant (je ne peux pas éditer mon premier post pour le mettre résolu :/)

Merci.