Probleme avec les données renvoyées par fsockopen sur certain serveurs

adess00 Messages postés 261 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 27 septembre 2008 - 19 mars 2008 à 03:56
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 19 mars 2008 à 10:44
Bonjour,

J'ai ecris un code qui envoi une requete sur une page php sur un serveur mais sur certains hebergeurs (comme 1and1), il me renvoie les données par morceaux.

Je vous montre un exemple :
Le fichier php contient un script sur le serveur qui affiche "coucou"
Quand je fais ma requete sur ce fichier et que je l'affiche, au lieu de recevoir "coucou" je recois "6 coucou 0".

Quand les chaines sont longues il me renvoi parfois des trucs du genre "3 cou 3 cou 0"

J'aimerais donc savoir comment faire pour faire face a ce probleme.

Merci bien :)

3 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
19 mars 2008 à 05:16
Salut,

Est-ce que tu pourrais montrer un peu ton code, voir ce qu'il fait exactement ? Qu'on puisse tester aussi, pour chercher le truc et comprendre ce qui se passe... Là, juste comme ça, on peut pas faire grand chose... (en tout cas, moi, le problème ne me parle pas du tout avec aussi peu d'éléments)

<hr size="2" width="100%" />Neige
0
adess00 Messages postés 261 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 27 septembre 2008 1
19 mars 2008 à 05:20
Je crois avoir trouvé, en faite le serveur renvoi les données decoupées, dans l entete de la reponse on retrouve : Transfer-Encoding: chunked.
Apparemment c'est le serveur qui utilise cette methode de decoupage.

Mais je vois pas comment faire pour desactiver cette methode lors de la requete qui pour l instant se presente aisni :

   $out = "POST /".$chemin." HTTP/1.1\r\n";
   $out .= "Host: ".$domain."\r\n";
   $out .= "Connection: Close\r\n";
   $out .= "Content-type: application/x-www-form-urlencoded\r\n";
   $out .= "Content-Length: ".strlen($postdata)."\r\n\r\n";
   $out .= $postdata."\r\n";
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
19 mars 2008 à 10:44
Salut,

Tu peux regarder du côté du standard HTTP/1.1, y'a une section justement sur la question :
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6.1

Là au lever du lit après 3h de sommeil, j'ai du mal à dire mieux.

<hr size="2" width="100%" />Neige
0
Rejoignez-nous