|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
Bonjour à tous !
j'ai problème d'envoi et de réception de fichiers xml. En fait, je ne vois absolument pas comment faire. J'ai cherché mais je trouve toujours des problemes relatifs à l'upload d'images, envoi de mails etc. Je dois convertir un texte en fichier XML, l'envoyer à un serveur www.nom-serveur.com/API/XML/ Ce serveur doit traiter ce fichier et m'en envoyer un autre (toujours en XML). Mon probleme est que je ne vois pas comment envoyer le fichier : Code :
move_uploaded_file($xmlfile, $url_serveur); // ? J'utilise DOMIT! pour la conversion (parse). Merci beaucoup !! |
|
|
00
|
|
|
#2 | ||
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
Salut !
j'ai essayé avec ca Code :
Quelqu'un a une idée, s'il vous plait ? Merci |
||
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
pour uploader un fichier, tu dois surement passer par un formulaire, non ?
tu pourrais nous donner plus de détails sur ce que tu as comme contraintes ?
__________________
Modérateur PHP |
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
Bonjour,
oui, j'utilise un formulaire. Exemple : Code :
avec seulement "414" ecrit sur la page (texte brut). Voila ce que je dois faire (contraintes) : 1. recupérer le login et mot de passe utilisateur 2. les enregistrer dans un fichier xml 3. les envoyer à un serveur (https://www.serveur.com/API/1.0/) 4. recuperer un autre fichier xml contenant d'autres informations sur l'utilisateur, que le serveur m'envoie. 5. transformer le fichier xml en tableau 6. afficher ces informations. Je bute sur les points 3 et 4... Merci bcp. |
||
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Bonjour,
Le problème ne viendrait-il pas du serveur distant? Tu nous dis qu'il affiche le XML en texte brut si j'ai bien compris, donc le XML passe bien au serveur mais ce serait lui qui ferait mal son travail en l'affichant et non en le traitant. webrider
__________________
Pensez au tag
|
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
C'est pas le XML qu'il affiche mais "414".
J'ai une page blanche, avec "414" ecrit en haut à gauche. |
|
|
00
|
|
|
#7 |
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
Salut !
j'ai l'impression que cette discussion n'est pas très compréhensible, parce que personne ne répond... S'il affiche "414", cela veut dire qu'il y a une erreur lors de l'envoi du fichier. Alors que le formulaire me semble bon. Qu'est ce que vous en pensez ? et qu'en est il de la réception. J'utilise une variable globale ? Merci. |
|
|
00
|
|
|
#8 | ||||
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
Bon, problème à moitié réglé.
Enfin, je crois, parce qu'il ne m'affiche plus le 414. Maintenant, je dois recuperer le fichier XML que le serveur doit me renvoyer. Mais comment faire pour preparer la reception du fichier ? Où et comment le stocker ? Tout ce que je sais du serveur qui m'envoie le fichier, c'est son adresse. Le code d'envoi : Code :
Code :
Merci... |
||||
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
hummm, j'ai essaye pas mal de choses mais je ne vois toujours pas quoi mettre.
Il n'y aurait pas une ame charitable passant par là qui voudrait bien m'aider si ou plé ? Mercii |
|
|
00
|
|
|
#10 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Salut!
Excuse-moi pour l'erreur 414 j'avais pas trop compris! lol En fait je me pose une question à propos de ton formulaire... J'ai l'impression qu'il n'est pas adapté à l'utilisation que tu souhaites en faire. Je vois que tu utilises la variable $xmlfile (chemin vers le fichier xml) que tu transmets en 'hidden' par post, tu ne transmets au serveur que le chemin du fichier et non son contenu! Une manière d'envoyer le contenu à un serveur distant en php est de créer un socket [fsockopen()] et d'envoyer des headers [fputs()] et le retour est récupéré par un fgets(). C'est quasi identique au travail sur un fichier local, la seule différence est que tu envoies les données par POST à un serveur distant. Tu peux aussi utiliser un formulaire html mais dans ce cas tu dois utiliser le type 'file'. J'espère que ceci va te mettre sur la voie. webrider
__________________
Pensez au tag
|
|
|
00
|
|
|
#11 | |||||||
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
Citation:
Y a pas de quoi ! Citation:
Citation:
exemple de code php : Code :
Citation:
Citation:
|
|||||||
|
|
00
|
|
|
#12 | ||||
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Citation:
Citation:
Code :
Voilà voilà bon dimanche! webrider
__________________
Pensez au tag
|
||||
|
|
00
|
|
|
#13 | |||
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
Salut ! et merci
Citation:
Code :
Meme quand je fais un ping sur http://www.inphonex.com, ca ne me renvoie rien. Encore moins en mettant "https". c'est sans le http:// que ca marche... L'erreur vient de la fonction fsockopen. Je vais creuser dans ce sens... Merci ! |
|||
|
|
00
|
|
|
#14 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Oui l'erreur provient de ton adresse qui doit être passée d'une façon spéciale, tu ne dois pas la préfixée https mais ssl :
Code :
$fp = fsockopen("ssl://www.inphonex.com/API/1.0/", 443, &$errno, &$errstr, 15); Bonne continuation, webrider
__________________
Pensez au tag
|
|
|
00
|
|
|
#15 |
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
Bon... ca marche pas, meme avec ssl. Au fait, je crois que pour ssl, c'est le port 6697. J'ai essaye avec ca aussi mais ca marche pas...
Je crois que je dois garder l'adresse qu'il m'ont filé (à savoir https). Bref, je verrai. Et peut on faire un ping sur un https, ou ssl (ca marche pas chez moi, rien ne marche Merci pour tesréponses |
|
|
00
|
|
|
#16 | ||
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Je suis certain que c'est le port 443. Pour ce qui est du ping tu le fais sur un hôte et non pas sur un protocole. Tu peux par exemple pinger www.tonsite.com mais pas https://www.tonsite.com!
Si tu veux vraiment être certain que le serveur réponde bien en https (donc sur le port 443 de l'hôte) tu peux faire un scan des ports et si le 443 est ouvert ET si un service est détécté sur ce port alors tu devrais pouvoir communiquer avec cet hôte sur ce même port. En utilisant par exemple http://www.t1shopper.com/tools/port-scanner/ , un scanneur de port en ligne, tu entres ton serveur (www.inphonex.com) et le port (443) et il te dira qu'un service qui tourne sur ce port. Logiquement en faisant un fsockopen() ça devrait fonctionner comme sur des roulettes. Ce qui ne va pas dans ta ligne de code, désolé je ne l'avais pas vu plus tôt, c'est que tu tentes d'ouvrir un socket vers un script défini et non pas un hôte. La ligne en question devrait donc se présenter comme suit : Code :
$fp = fsockopen("ssl://www.inphonex.com", 443, &$errno, &$errstr, 15); Code :
Bonne soirée! webrider
__________________
Pensez au tag
|
||
|
|
00
|
|
|
#17 | ||||
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
Merci beaucoup pour ton aide ! La connexion est Ok ! et l'envoi du fichier Ok ! Par contre (et je suis en train de chercher et de tester), le serveur doit me renvoyer un fichier XML. Ce qu'il me renvoie avec le code que j'ai mis est une chaine de caractere : Code :
Mon code : Code :
Problème à 70% résolu ! Merci bcp |
||||
|
|
00
|
|
|
#18 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Salut!
Excuse-moi pour la réponse tardive, beaucoup de boulot du coup j'ai pas vu tout de suite ta réponse. Ce que tu reçois est seulement l'en-tête pour te dire que le serveur web a bien traité ta demande. J'ai regardé les quelques lignes de code, et j'ai l'impression que ton erreur se situe dans ton header. Code :
$header = "POST / https://www.inphonex.com/API/1.0/\r\n"; Ca devrait plutôt être : Code :
$header = "POST /API/1.0/script.php\r\n";
__________________
Pensez au tag
|
|
|
00
|
|
|
#19 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Ah oui pour répondre à ta question sur le "Content-type" text/xml est tout-à-fait correct!
__________________
Pensez au tag
|
|
|
00
|
|
|
#20 | |
|
Membre chevronné
![]() Salim ChamiIngénieur développement logiciels Inscription : décembre 2002 Messages : 651 ![]() |
Euh... non. Ca marche pas. Il ne me renvoie rien quand j'enlève 'https://etcera'.
Et à la fin de l'adresse (le path) je n'ai pas de script.php. L'adresse qu'il m'ont donné (sur la documentation beta !) est https://www.inphonex.com/API/1.0/. Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com