Page 1 sur 1

cURL : Requête POST sur des formulaires évolués

Posté : 19 janv. 2013, 23:43
par jeum
Bonsoir

Je bute sur un problème avec les requêtes POST et je me demande si ce que je veux faire est réalisable ou pas, et si c'est la bonne méthode ..

Le but est de récupérer et traiter des résultats de recherches.
J'arrive à faire fonctionner ces requêtes sur des sites de recherches classiques mais pas avec ceux comportant des formulaires à auto-completion (tests en dessous). Dans ce cas j'ai beau envoyer des chaines conformes, je récupère une chaine de longueur nulle.

Y a t-il une erreur quelque part, est-ce que c'est juste une question d'option CURL.. ou est ce qu'il faut de toutes façons une validation manuelle avec ce type de formulaire ??
Et comment déclencher l'auto-completion du contrôle si on envoie une chaine de recherche non-conforme ?

Merci pour vos réponses.
<?php
	// Une recherche sur duckduck (OK!)
	// $url='https://duckduckgo.com/';
	// $postFields=array(
        // "q" => "auto-completion"
	// );
	
	// Une recherche qui marche pas ..
	$url= 'http://www.123envoiture.com/recherche.php';
	$postFields=array(
          "VilleDepart" => "Lyon (69001)", //2996944_69001
	  "VilleArrivee" => "Paris (75000)", //2988507_75000
	  "dateDepart" => "31/01/2013" //31%2F01%2F2013
	);
	
	// Mode POST
	$options=array(
		CURLOPT_URL            => $url,       // Url cible (l'url de la page que vous voulez télécharger)
		CURLOPT_RETURNTRANSFER => true,       // Retourner le contenu téléchargé dans une chaine (au lieu de l'afficher directement)
		CURLOPT_HEADER         => false,      // Ne pas inclure l'entête de réponse du serveur dans la chaine retournée
		CURLOPT_FAILONERROR    => true,       // Gestion des codes d'erreur HTTP supérieurs ou égaux à 400
		CURLOPT_POST           => true,       // Effectuer une requête de type POST
		CURLOPT_SSL_VERIFYPEER => false,
		CURLOPT_POSTFIELDS     => $postFields // Le tableau associatif contenant les variables envoyées par POST au serveur
	);
	
    // Requête
    $CURL=curl_init();
    curl_setopt_array($CURL,$options);
    $content=curl_exec($CURL);
 
    // Gestion erreur
    if(curl_errno($CURL)){
        // Le message d'erreur correspondant est affiché
        echo "ERREUR curl_exec : ".curl_error($CURL);
    }
    curl_close($CURL);

    echo strlen($content);
    echo $content;
?>

Re: cURL : Requête POST sur des formulaires évolués

Posté : 20 janv. 2013, 07:19
par two3d
Salut,

pour l'auto-completion, je t'invite à voir du côté de jquery: jqueryui.com/autocomplete/

pour récupérer les valeur de ton tableau, il y cette solution:
<?php
        $postFields=array(
          "VilleDepart" => "Lyon (69001)", //2996944_69001
          "VilleArrivee" => "Paris (75000)", //2988507_75000
          "dateDepart" => "31/01/2013" //31%2F01%2F2013
        );
		foreach($postFields as $cle => $valeur) {
			?>
			<input type="text" name="<?php echo $cle; ?>" value="<?php echo $valeur; ?>" /><br />
			<?php
		}
je ne connais pas CURL, dsl

Re: cURL : Requête POST sur des formulaires évolués

Posté : 20 janv. 2013, 12:02
par jeum
Merci mais je ne cherche pas à faire un formulaire .. La requête POST permet d'envoyer des paramètres à un serveur et de télécharger le résultat.

Re: cURL : Requête POST sur des formulaires évolués

Posté : 20 janv. 2013, 12:39
par Fre3z69
Salut

ça peux peut être t'aider

Un sujet que 'jai poster pour Curl

En espérant que tu trouve la solution à ton problème

Cordialement

Re: cURL : Requête POST sur des formulaires évolués

Posté : 20 janv. 2013, 12:41
par two3d
un tuto est disponible à cette adresse: http://plkt.fr/index.php/hacks/77-prati ... -curl.html pour les POST et GET