méthode POST distante

Eléphanteau du PHP | 34 Messages

19 mars 2007, 12:40

bonjour,

je cherche à valider une formulaire qui a une méthode POST à distance.
Je suis le site à A qui a besion que mon script PHP valide une formulaire en mode POST sur le site B.
Par là, j'aimerai aussi récuperer le code de la page de retour du formulaire distant dans une variable de type tableau.

merci d'avance pour vos réponses.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

19 mars 2007, 12:47

Bonjour,

Regarde du côté de la librairie cURL:

http://fr.php.net/curl
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 693 Messages

23 mars 2007, 13:30

A ce propos, j'ai un petit problème avec les sessions CURL.

J'aimerais me connecter sur un site via un formulaire POST puis après récupérer différentes pages.

Voici mon script :
//Création de la session
$curlId = curl_init("http://www.lesite.com");

curl_setopt($curlId, CURLOPT_COOKIESESSION, TRUE); //Autorisation d'utiliser les cookies de sessions
curl_setopt($curlId,CURLOPT_COOKIEJAR, "cookie.txt"); // Stockage des cookies dans cookies.txt
curl_setopt($curlId, CURLOPT_RETURNTRANSFER, 1); //Un retour du transfert

//Envoie du POST
curl_setopt($curlId, CURLOPT_POST, TRUE); //On prépare le POST
$post = "login=XXX&password=XXX";
curl_setopt($curlId, CURLOPT_POSTFIELDS, $post); //On envoie le POST

curl_exec($curlId); //On exécute la sessuin
curl_close($curlId);
$curlId = curl_init("http://www.lesite.com/page.php");
 //On va sur la page où il y a les données
curl_setopt($curlId,CURLOPT_COOKIEFILE, "cookie.txt"); // Indique le lieu des cookies


//On execute la session que l'on met dans un variable
$contenu = curl_exec($curlId);

//On Ferme la session
curl_close($curlId);
print($contenu);
Quand j'execute le script, il y a bien un cookie inscrit dans cookie.txt, mais la deuxième session Curl renvoie la page quand on est déconnecté.

Et je ne vois pas comment tester si le cookie inscrit dans cookie.txt corespnd à une session valide...