[CURL] Champs pré-remplis

Eléphanteau du PHP | 35 Messages

26 mai 2011, 04:42

Bonsoir à tous,

j'aimerais avoir un éclaircissement concernant curl et la soumission de formulaire.

Tout d'abord, est-il est nécessaire de reposter les champs déjà remplis ?
Exemple : J'arrive sur une page où il y a un champ : <input name="toto" value="12345"/>
Est-ce que quand j'utilise CURL, je suis obligé de lui repassé cette variable ($postfields['toto'] = '12345'), ou bien ce n'est pas la peine ?

De plus, savez-vous comment on fait pour remplir les input dont les noms sont "name[]" ?
Par exemple, si j'ai :
<input name="var[]" id="var1"/>
<input name="var[]" id="var2"/>

J'ai tenté un $postfields['var'] = array('valeur1','valeur2'), mais ça ne marche pas.

Avez-vous une idée là dessus ?

Merci d'avance :)

Eléphant du PHP | 92 Messages

26 mai 2011, 11:19

Hello,

Visiblement tu as une petite incompréhension sur le fonctionnement de cURL.
Il faut bien comprendre que CURL lui ne fait que faire des requêtes HTTP, il n'exécute pas de HTML et encore moins de javascript.
Donc pour la soumission d'un formulaire ce qu'il se passe c'est que tu appelles l'URL qui se trouve dans l'attribut "action" de ta balise <form> en lui passant les paramètres que ce script attends en suivant la méthode du formulaire (POST ou GET).

Donc à la question :
est-il est nécessaire de reposter les champs déjà remplis ?
La réponse est oui, car cURL ne connaît pas l'HTML et c'est bien à toi de renseigner les paramètres attendu par le script action.

Ensuite :
De plus, savez-vous comment on fait pour remplir les input dont les noms sont "name[]" ?
Ce que fait l'HTML ici c'est fabriquer un tableau à destination du script action. Donc dans ton script cURL il faut que tu fasses un tableau et que tu le rajoutes dans les paramètres passés au script action.
Programmer c'est 20% de syntaxe pour 80% de réflexion et dans les 20% de syntaxe il faut encore compter une bonne dose de réflexion...
Je vous donne des conseils, pas des solutions toutes faites...