Hello Hello,

Je voudrais poster envoyer un POST auromatiquement en utilsant PHP/ Curl.
Le probleme est que dans le formulaire se trouve une cle cachee (variable hidden) qui est automatiquement generee et donc change a chaque fois.

Je peux facilement recupere la cle mais le probleme c'est que je ne sais pas comment reutiliser le meme formulaire sans recharger la page, et donc la cle change.

Mon code:

Ici je recupere la page:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL, $url_connexion);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; fr; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_COOKIESESSION, 0); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $url_cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $url_cookie);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
 
$contenu = curl_exec($ch);
ensuite je bidouille pour recupere la cle sur $contenu avec une expression reguliere ou meme un explode. Je cale tous mes variable de champs dans postfield.

et je veux poster enfin le formulaire.. (Mais bien sur, HIC, ca recherge un nouveau formulaire et la cle change):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; fr; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_COOKIESESSION, 0); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $url_cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $url_cookie);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch,CURLOPT_PUT,1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields_log);
$contenu = curl_exec($ch);
Merci pour votre aide. D'habitude je recherche toujours ma reponse sur le forum ou le net, mais la.. le sujet a apparement ete rarement traite..

A+,

Pierre