Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Envoyer des parametres en POST

5 réponses
Avatar
Jean-Francois Ortolo
Bonjour

Je ne dispose pas de la fonction fsockopen(), ni, je crois, de la
fonction fopen() pour des fichiers ou scripts distants ( Je suis sous
OVH mutualisé. )

Mon problème, est que je ne sais pas comment télécharger le résultats
rendu par une form comportant des paramètres POST, avec uniquement par
exemple, la commande file($url) en PHP, en donnant au paramètres $url,
les valeurs des paramètres, codées de manière à ce que ce soit des
paramètres POST, et non GET.

Si les paramètres étaient en GET, je pourrais donner à la variable
$url, la valeur:

$url="$url_du_serveur/script_avec_form.php?var1=$var1&var2=$var2"
etc... puis ensuite faire:

$contenu = @file($url);

...Mais comme les paramètres sont en POST, je ne peux pas procéder
comme celà.

Merci beaucoup beaucoup de m'indiquer comment résoudre ce problème,
qui, je l'avoue, est un problème de newbie que je n'ai réussi à résoudre
pour l'instant, qu'avec la fonction fsockopen(). Malheureusement, OVH a
désactivé cette fonction sur ses mutualisés.

Bien à vous.

Jean Francois Ortolo

--
Mon site donne des Statistiques
et des Historiques Graphiques gratuits
sur les Courses de Chevaux du PMU.
http://www.ortolojf-courses.com

5 réponses

Avatar
Bruno Baguette
Bonjour

Je ne dispose pas de la fonction fsockopen(), ni, je crois, de la
fonction fopen() pour des fichiers ou scripts distants ( Je suis sous
OVH mutualisé. )

Mon problème, est que je ne sais pas comment télécharger le résultats
rendu par une form comportant des paramètres POST, avec uniquement par
exemple, la commande file($url) en PHP, en donnant au paramètres $url,
les valeurs des paramètres, codées de manière à ce que ce soit des
paramètres POST, et non GET.


La librairie CURL (si votre hébergeur l'a installée) devrait faire
l'affaire : http://php.belnet.be/curl

Bien à vous,

--
Bruno BAGUETTE -

Avatar
John GALLET
Bonjour,

Je ne dispose pas de la fonction fsockopen(), ni, je crois, de la
fonction fopen() pour des fichiers ou scripts distants ( Je suis sous
OVH mutualisé. )


Si http://fr2.php.net/curl est disponible (je n connais pas cette
config), c'est une solution simple.

a++;
JG

Avatar
Jean-Francois Ortolo
Bruno Baguette wrote:

La librairie CURL (si votre hébergeur l'a installée) devrait faire
l'affaire : http://php.belnet.be/curl



Cà marche impec.

Merci beaucoup de votre réponse, j'ai simplement besoin d'une info:

Le script PHP que j'appelle en lui fournissant des paramètres POST,
et qui comporte donc une FORM, répond en donnant la possibilité à
l'utilisateur, de télécharger un fichier avec son navigateur. Le fichier
a un nom fixé.

J'ai déjà testé le passage de paramètres POST, ça fonctionne, mais
comment télécharger le fichier automatiquement, comme si le programme
PHP était comme un navigateur ?

Merci beaucoup beaucoup de votre réponse.

Jean Francois Ortolo

--
Mon site donne des Statistiques
et des Historiques Graphiques gratuits
sur les Courses de Chevaux du PMU.
http://www.ortolojf-courses.com

Avatar
Jean-Francois Ortolo
Jean-Francois Ortolo wrote:

Le script PHP que j'appelle en lui fournissant des paramètres POST, et
qui comporte donc une FORM, répond en donnant la possibilité à
l'utilisateur, de télécharger un fichier avec son navigateur. Le fichier
a un nom fixé.

J'ai déjà testé le passage de paramètres POST, ça fonctionne, mais
comment télécharger le fichier automatiquement, comme si le programme
PHP était comme un navigateur ?



Rebonjour

Le(s) fichier(s) a télécharger, sont des fichier textes *.csv , issus
de l'export de Base de Données censé se produire lors de l'appel de la FORM.

Ne pensez-vous pas que je pourrais configurer la connexion curl, en
ajoutant cette instruction ?

curl_opt($ch, CURLOPT_HTTPHEADER, "Accept: text/csv");

Les double quotes sont-elles préférables, ou faut-il des simple quotes ?

La variable $ch ayant été préalablement affectée par la fonction
d'initialisation:

$ch = @curl_init();

Actuellement, je ne reçois pas le contenu du fichier, mais seulement
la page HTML contenant la FORM, qui s'affiche également de nouveau,
quand on utilise un navigateur.

Je ne sais pas comment recevoir le fichier. Je ne maîtrise pas les
fonctions relatives aux upload/download de fichiers, et la documentation
que j'ai lue ( les commentaires des utilisateurs du PHP Manual ) ne
concerne pas ce type de problème.

Merci beaucoup pour vos réponses.

Bien à vous.

Jean Francois Ortolo

--
Mon site donne des Statistiques
et des Historiques Graphiques gratuits
sur les Courses de Chevaux du PMU.
http://www.ortolojf-courses.com

Avatar
Jean-Francois Ortolo
Jean-Francois Ortolo wrote:


Le(s) fichier(s) a télécharger, sont des fichier textes *.csv , issus
de l'export de Base de Données censé se produire lors de l'appel de la
FORM.



J'ai résolu le problème

Il m'a suffit de rajouter ces quelques instructions:

unset($headers);
$headers = array("Accept:text/xml, application/xml,
application/xhtml+xml, text/html, text/plain",
"content-disposition=chevaux.csv");

curl_setopt($ch, CURLOPT_HTTPHEADER, headers);

Celà ajoute le contenu de la variable $headers à l'header HTTP envoyé
au formulaire, et configure les données reçues comme étant le résultat
du téléchargement du fichier chevaux.csv

Je n'ai même pas à configurer le Content-Type, qui est rendu par le
seveur automatiquement. C'est:

"Content-Type: application/csv-tab-delimited-table"

Celà a fonctionné du premier coup, j'étais stupéfait...

Pour les accros de la librairie Curl.

Bien à vous.

Jean Francois Ortolo

--
Mon site donne des Statistiques
et des Historiques Graphiques gratuits
sur les Courses de Chevaux du PMU.
http://www.ortolojf-courses.com