OVH Cloud OVH Cloud

Comment simuler un SUBMIT METHOD=POST ?

5 réponses
Avatar
Johann glantenay
Bonjour tout le monde,

Je cherche à récupérer pour les étudier les données d'une page Web qui
utilise les paramètres fournies par un formulaire HTML. Ce formulaire est
envoyé via la méthode POST. J'aimerais savoir s'il est possible de simuler
cet appel et de récupérer le résultat.

J'imagine qu'il faudrait être capable de paramétrer/modifier la requête HTTP
"appelante" mais je n'ai pas trouvé de moyen de faire cela. Quelqu'un
peut-il m'aider?

5 réponses

Avatar
Christian
Johann glantenay wrote:

Bonjour tout le monde,

Je cherche à récupérer pour les étudier les données d'une page Web qui
utilise les paramètres fournies par un formulaire HTML. Ce formulaire est
envoyé via la méthode POST. J'aimerais savoir s'il est possible de simuler
cet appel et de récupérer le résultat.

J'imagine qu'il faudrait être capable de paramétrer/modifier la requête HTTP
"appelante" mais je n'ai pas trouvé de moyen de faire cela. Quelqu'un
peut-il m'aider?


http://www.bitfolge.de/befopen-en.html
tu y trouveras une classe s'appelant BrowserEmulator, qui permet, comme
son nom l'indique, d'emuler le comportement d'un navigateur.
à partir de ça, tu peux faire ce que tu veux.

Christian

Avatar
loufoque
Message d'origine de Johann glantenay :

Je cherche à récupérer pour les étudier les données d'une page Web qui
utilise les paramètres fournies par un formulaire HTML. Ce formulaire est
envoyé via la méthode POST. J'aimerais savoir s'il est possible de simuler
cet appel et de récupérer le résultat.
Un navigateur arrive bien à faire des requêtes POST, alors pourquoi pas

quelqu'un d'autre ?
Ce qu'un logiciel peut faire, un autre le peut.


J'imagine qu'il faudrait être capable de paramétrer/modifier la requête HTTP
"appelante" mais je n'ai pas trouvé de moyen de faire cela. Quelqu'un
peut-il m'aider?
Utilise les sockets et ensuite dialogue selon le protocole HTTP 1.0 (1.1

est assez déconseillé pour ce genre de truc, puisque les données seront
probablement ensuite renvoyées en chunked)
En PHP c'est très facile, fsockopen() et paf c fini.

Avatar
Hugues Peeters
Je cherche à récupérer pour les étudier les données d'une page Web qui
utilise les paramètres fournies par un formulaire HTML. Ce formulaire est
envoyé via la méthode POST. J'aimerais savoir s'il est possible de simuler
cet appel et de récupérer le résultat.

J'imagine qu'il faudrait être capable de paramétrer/modifier la requête HTTP
"appelante" mais je n'ai pas trouvé de moyen de faire cela. Quelqu'un
peut-il m'aider?


Je ne suis pas sur de bien comprendre votre problème, mais si vous
souhaitez simplement voir ce que le navigateur vous envoie en POST, tout
ces données sont stockées dans le tableau $_POST ($HTTP_POST_VARS dans
les version antérieurs à PHP 4.1). Donc l'instruction PHP

var_dump($_POST);

vous donne tous les détails qu'on peut souhaiter connaître sur une
variable.

Cordialement,

Hugues Peeters

---
http://www.claroline.net

Avatar
Christian
Johann glantenay wrote:

Bonjour tout le monde,

Je cherche à récupérer pour les étudier les données d'une page Web qui
utilise les paramètres fournies par un formulaire HTML. Ce formulaire est
envoyé via la méthode POST. J'aimerais savoir s'il est possible de simuler
cet appel et de récupérer le résultat.

J'imagine qu'il faudrait être capable de paramétrer/modifier la requête HTTP
"appelante" mais je n'ai pas trouvé de moyen de faire cela. Quelqu'un
peut-il m'aider?


http://www.bitfolge.de/befopen-en.html
tu y trouveras une classe s'appelant BrowserEmulator, qui permet, comme
son nom l'indique, d'emuler le comportement d'un navigateur.
à partir de ça, tu peux faire ce que tu veux.

Christian

Avatar
Michel BILLAUD
"Johann glantenay" writes:

Bonjour tout le monde,

Je cherche à récupérer pour les étudier les données d'une page Web qui
utilise les paramètres fournies par un formulaire HTML. Ce formulaire est
envoyé via la méthode POST. J'aimerais savoir s'il est possible de simuler
cet appel et de récupérer le résultat.

J'imagine qu'il faudrait être capable de paramétrer/modifier la requête HTTP
"appelante" mais je n'ai pas trouvé de moyen de faire cela. Quelqu'un
peut-il m'aider?


Utilisez les fonctions "curl" qui sont distribuée en PHP

Exemple pompé dans
http://www.zend.com/zend/tut/tutorial-thome3.php

<?php
// FIND BOOKS ON PHP AND MYSQL ON AMAZON
$url = "http://www.amazon.com/exec/obidos/search-handle-form/002-5640957-2809605";
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s
curl_setopt($ch, CURLOPT_POST, 1); // set POST method
curl_setopt($ch, CURLOPT_POSTFIELDS, "url=index%3Dbooks&field-keywordsPHP+MYSQL"); // add POST fields
$result = curl_exec($ch); // run the whole process
curl_close($ch);
echo $result;
?>

MB

--
Michel BILLAUD
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)