[RESOLU] Curl, formulaire et afficher resultat

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Curl, formulaire et afficher resultat

Re: Curl, formulaire et afficher resultat

par sebounet » 13 déc. 2010, 18:35

Re: Curl, formulaire et afficher resultat

par carlescampi » 10 déc. 2010, 19:48

Merci, je vais essayer.

Et les cookies comment on fait ?

Re: Curl, formulaire et afficher resultat

par sebounet » 08 déc. 2010, 22:28

Y'a cet element qui te manque dans ton formulaire, virtualKey => 0, puis les cookies (logique).

Re: Curl, formulaire et afficher resultat

par carlescampi » 03 déc. 2010, 02:04

Bonsoir,

Merci pour la réponse (et excuse moi du retard, j'avais perdu le lien).

A vrais dire en envoyant le formulaire manuellement, ça marche, et donne le résultat que j'aimerais récupérer. Mais avec Curl, on dirait qu'il ne le laisse pas accéder a l'intérieur. ça doit être une sorte de sécurité. :shock:
L'informaticien de la banque ne trouve pas l'intérêt de cette démarche et me demande d'y accéder manuellement, chose que je veux éviter. :non:
L'intérêt pour moi est celle de regrouper 3 comptes que j'ai dans cette même banque, faire une sorte de comptabilité automatique. :!:

Vous croyez que c'est impossible d’accéder dans cette page via Curl ? :?

Peut être j'ai oublié un post du Formulaire.... peut être il y a un cookie? je ne suis pas expert dans ce domaine, si quelqu'un pouvait me donner des renseignements :priere:

Re: Curl, formulaire et afficher resultat

par enneite » 23 nov. 2010, 12:41

cURL simule un envoi de formulaire.

Avant de tester cURL il faut donc voir ce qu'il se passe lorsque tu envoies le formulaire à la banque.
Si la banque n'affiche pas un retour correct dans le navigateur, c'est qu'il y a une erreur de paramètre dans le formulaire.

Une fois que le formulaire soumis à la banque est vérifié sans l'usage de cURL, on passe alors au debuggage de cURL, sinon pas la peine d'aller plus loin, il faut voir le paramètre qui pose problème (y compris en appelant les techniciens de la banque).

Si le formulaire marche, c'est à dire si le navigateur renvoie la chaine de caractères que l'on souhaitait, on le teste avec cURL.
Ton code à l'air correct, à priori, tu n'as rien oublié, peut être même que tu as ajouté des options non indispensables :
par exemple, je n'utilise pas les deux derniers car ma banque ne les vérifie pas :
//On passe un referrer ici on passe la même page $url
curl_setopt($ch, CURLOPT_REFERER, $referer);
//On définit un useragent ici Mozilla/5.0
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
Mais à mon avis l'erreur ne vient pas de cURL mais des paramètres envoyés à la banque :
soit tu en as oublié un.
soit il y en a un qui est mal formaté.
Mais ça, il faut le tester sans cURL et voir avec le support technique de la banque ce qu'il manque.

Re: Curl, formulaire et afficher resultat

par carlescampi » 23 nov. 2010, 02:49

UP ?

Curl, formulaire et afficher resultat

par carlescampi » 21 nov. 2010, 03:48

Bonjour,

Je suis débutant en Curl, mon objectif est de valider un formulaire et voir le resultat de la page qui suit le formulaire.

A vrais dire il y a longtemps que je teste mais le site me bloque l'acces en tant que "erreur generique", donc je dois certainement oublier des informations...

le FORM est le suivant:
<form action="GeneralServlet" method="post" name="InicioForm" autocomplete="off">
<input type="hidden" name="ajax" value="permitido">
<input name="idioma" type="hidden" value="">
<input name="pageOperation" type="hidden" value="LOGIN">

<input name="login" type="text" value="" maxlength="12">
<input name="password" id="password" type="password" value="" maxlength="12" onfocus="mostrarTeclado()">
<input type="submit" value="Entrar" class="boton">
</form>
Et le script php est le suivant :
<?php
// Données à envoyer
$post = array();
$post["ajax"] = "permitido";
$post["idioma"] = "";
$post["pageOperation"] = "LOGIN";
$post["login"] = "AAAAA";
$post["password"] = "BBBBB";
$post["submit"] = "Entrar";

$message_sous_forme_de_chaine = http_build_query($post);
// On effectue la requête avec cURL
$useragent = "Mozilla/5.0";
$url = "https://interconnexio2.bibm.ad/GeneralServlet"; //argument action dans form
$referer = $url; 

//Initialise une session CURL
$ch = curl_init($url);

curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_HEADER, FALSE );
//on récupère le contenu de la page de résultat de la soumission dans une chaine
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
//CURL options
curl_setopt($ch, CURLOPT_POST, TRUE);
//On poste les données du tableau $postfields
curl_setopt($ch, CURLOPT_POSTFIELDS, $message_sous_forme_de_chaine);
//a mettre absoluement sinon, la liste de certificats existants ne sera pas prise en compte
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
//On passe un referrer ici on passe la même page $url
curl_setopt($ch, CURLOPT_REFERER, $referer);
//On définit un useragent ici Mozilla/5.0
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);

// en cas de redirection (facultatif ici)
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//Page de résultats et fermeture de session
//$result = 

$ret = curl_exec($ch);
if (!$ret) {
    echo curl_error($ch);
} else {
    echo 'Envoi OK !';
	echo '<br>'.$ret;
}
curl_close($ch);
?>
le site en question est : https://interconnexio2.bibm.ad/GeneralServlet , c le site de ma banque.

Je vous serai très reconnaissant de bien vouloir jeter un petit coup d'oeuil a ce code, je suis sur que quelque chose doit manquer...

Merci