Pb: (PHP) cURL transmission en POST

Fermé
NicoASM7 Messages postés 15 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 8 juillet 2008 - 8 juil. 2008 à 11:49
 ZDS - 2 sept. 2008 à 23:58
Bonjour,

J'essaie de soumettre des valeurs en POST à partir de la librairie cURL en php
et je n'arrive pas à obtenir le résultat attendu.

Si je passe la variable $chaine telle que $chaine = 'nom1=Toto&nom2=toto2',
je n'obtiens pas de résultat pour curl_exec($ch) (le passage des paramètres
ne fonctionne pas).
Tandis que si je passe la variable $chaine = 'nom1 =Toto&nom2 =toto2'; (avec un espace avant le '='),
le passage des paramètres s'effectue normalement.
Seulement dans la page réceptrice les noms des variables passées en paramètre prennent toutes un underscore '_' à la fin. (et si j'ajoute des blancs dans $chaine avant les '=' des underscores sont rajoutés)

Après un var_dump($_POST) dans la page réceptrice :
on trouve $_POST['nom1_'] au lieu de $_POST['nom1'] et $_POST['nom2_'] au lieu de $_POST['nom2'] .

Voici le code correspondant :

$chaine = 'nom1 =Toto&nom2 =toto2';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_USERPWD,$id);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $chaine);
curl_exec($ch);
curl_close($ch);

Si vous avez déjà eu ce problème ou que vous savez comment y remédier, je sollicite
votre aide merci.

Nico

1 réponse

Désolé de répondre aussi tardivement je cherchais des infos sur cURL quand je suis tombé sur ton post.

Je te conseille de passer tes paramètres par tableau, plutôt que par chaine :

$chaine = array();
$chaine['nom1'] ='Toto';
$chaine['nom2'] = 'toto2';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_USERPWD,$id);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $chaine);
curl_exec($ch);
curl_close($ch);


Bonne chance pour la suite.
0