bensor Posté(e) le 25 juin 2008 Partager Posté(e) le 25 juin 2008 Salut à tous. Bon voilà, je rencontre un problème en PHP et je sèche totalement. Le but du code : envoyer un fichier XML via un socket en SSL vers un script sur un autre serveur. Evidemment, faire un fsockopen() suivi d'un fputs bête et méchant du fichier XML aurait été très simple. Le problème est que je recontre une petite erreur (php_network_getaddresses: getaddrinfo failed: Name or service not known) qui ne peut être résolue que par la modification des DNS du serveur ou du fichier /etc/hosts. J'ai donc décidé d'envoyer le contenu du fichier XML via une requête POST en HTTP. Voici le code qui fait cela (les URL ont été modifiées bien sûr) : $fp = fsockopen("ssl://www.sitebidon.com", 443, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "POST /sousdossier/fichier HTTP/1.1\r\n"; $out .= "Content-Type : application/xml\r\n"; $out .= "Connection : keep-alive\r\n"; $out .= "Host: www.sitebidon.com\r\n"; $out .= "\r\n"; $out .= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; $out .= "<balises>"; $out .= "<balise>"; $out .= "<contenu>123</contenu>"; $out .= "</balise>"; $out .= "</balises>"; fwrite($fp, $out ); while ( !feof( $fp ) ) { echo '<pre>'; echo fgets( $fp, 1024 ).'<br />'; echo '</pre>'; } fclose( $fp ); } Quand le script du serveur distant ne reçoit rien, il retourne "KO". Or, c'est ce 'KO' qui est affiché à l'issue de ce script. Quelqu'un voit-il où j'ai pu me planter ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
tsubasaleguedin Posté(e) le 25 juin 2008 Partager Posté(e) le 25 juin 2008 $fp = fsockopen("ssl://www.sitebidon.com", 443, $errno, $errstr, 30); Quand le script du serveur distant ne reçoit rien, il retourne "KO". Or, c'est ce 'KO' qui est affiché à l'issue de ce script. Quelqu'un voit-il où j'ai pu me planter ? en virant ssl:// ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
bensor Posté(e) le 25 juin 2008 Auteur Partager Posté(e) le 25 juin 2008 $fp = fsockopen("ssl://www.sitebidon.com", 443, $errno, $errstr, 30); Quand le script du serveur distant ne reçoit rien, il retourne "KO". Or, c'est ce 'KO' qui est affiché à l'issue de ce script. Quelqu'un voit-il où j'ai pu me planter ? en virant ssl:// ? pas d'erreur, mais pas de retour non plus...enfin ça me retourne du vide en fait. Normallement je devrais au moins avoir l'en-tête HTTP de retour du serveur, là que dalle :s EDIT : Je viens de faire un GET en suivant cette modification, aucun retour non plus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 25 juin 2008 Partager Posté(e) le 25 juin 2008 Euh, et en mettant https:// au lieu de ssl:// ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
bensor Posté(e) le 25 juin 2008 Auteur Partager Posté(e) le 25 juin 2008 Euh, et en mettant https:// au lieu de ssl:// ? On m'a dit que ce n'était pas un protocole compatible avec fsockopen, même après que j'ai insisté très lourdement. J'ai essayé, mais il ne connait pas ce protocole (alors que file_get_contents() le connait très bien, allez comprendre...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 25 juin 2008 Partager Posté(e) le 25 juin 2008 Apparemment windows a un problème avec SSL... (oh ben ça alors =_=) Sur un forum, un utilisateur ayant le même problème que toi l'a résolu en remplaçant la DLL de php par celle-là : http://ftp.proventum.net/pub/php/win32/misc/openssl/ Vois si ça marche ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
bensor Posté(e) le 26 juin 2008 Auteur Partager Posté(e) le 26 juin 2008 Apparemment windows a un problème avec SSL... (oh ben ça alors =_=)Sur un forum, un utilisateur ayant le même problème que toi l'a résolu en remplaçant la DLL de php par celle-là : http://ftp.proventum.net/pub/php/win32/misc/openssl/ Vois si ça marche ? Le serveur est sous linux. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mephisto Posté(e) le 26 juin 2008 Partager Posté(e) le 26 juin 2008 dans le bout de code original, que contiennent errno et errstr ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
bensor Posté(e) le 26 juin 2008 Auteur Partager Posté(e) le 26 juin 2008 dans le bout de code original, que contiennent errno et errstr ? Avant de commencer à faire les modifs de ce sujet = errno : 10983, errstr : rien. Pas la peine de cherche ce que signifie ce 10983 sur google, seuls les chinois en parlent. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.