Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/10/2007, 10h46   #1
Invité régulier
 
Inscription : août 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 55
Points : 9
Points : 9
Par défaut Récupérer la sortie d'une requete via 1 formulaire sur serveur distant

Bonjour,

je souhaiterais récupérer la sortie d'une requete poster via un formulaire sur un autre serveur.

lorsque que j'emets ma requete, j'arrive sur la page demandée du serveur distant et celui-ci m'affiche la réponse.
je voudrais récupérer cette réponse.

j'ai vu qu'on pouvait installer "cURL", mais je souhaiterais utiliser une méthode sans installer quoi que ce soit sur mon serveur.

Merci d'avance.
p_m_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 11h22   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
La plupart du temps, CURL est installé par défaut. Sinon tu peux toujours faire du fsockopen pour envoyer une requête et récupérer la réponse du serveur.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 12h16   #3
Invité régulier
 
Inscription : août 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 55
Points : 9
Points : 9
Effectivement cURL est installé sur ma machine.
je viens de faire quelques test mais j'ai l'erreur suivante qui m'est retournée :
"SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed"

quel est le problème, je n'arrive pas à trouver la solution.

voici un bout de script utilisé :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Pour assurer la compatibilité avec les versions PHP 4
	if (!function_exists('http_build_query')) {
		function http_build_query($formdata, $numeric_prefix = NULL, $arg_separator = '', $parent_key = '') {
			$ret = array();
			if (is_array($formdata)) {
				if (empty($arg_separator)) {
					$arg_separator = ini_get('arg_separator.output');
				}
				foreach ($formdata as $k => $v) {
					if (is_int($k) && $numeric_prefix != NULL) {
						$k = $numeric_prefix . $k;
					}
					if ($parent_key != '') {
						$k = sprintf('%s[%s]', $parent_key, $k);
					}
					if (is_array($v)) {
						array_push($ret, http_build_query($v, NULL, $arg_separator, $k));
					} elseif (is_object($v)) {
						array_push($ret, http_build_query(get_object_vars($v), NULL, $arg_separator, $k));
					} else {
						array_push($ret, urlencode($k) . '=' . urlencode($v));
					}
				}
			}
			return implode($arg_separator, $ret);
		}
	}
 
	// Faire suivre les données POST à une autre page
	$ch = curl_init('https://site-distant.fr/');
	curl_setopt($ch, CURLOPT_POST, TRUE);
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
	$ret = curl_exec($ch);
	if (!$ret) {
		echo curl_error($ch);
	} else {
		echo $ret;
	}
	curl_close($ch);
}
p_m_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 12h23   #4
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
tu as un problème d'authentification via https.
Logiquement, si tu as SSL , essaie de tester en rajoutant les lignes suivantes:

Code :
1
2
3
4
5
      curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
	curl_setopt($ch, CURLOPT_POST, TRUE);
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 12h41   #5
Invité régulier
 
Inscription : août 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 55
Points : 9
Points : 9
Merci beaucoup !

effectivement ça fonctionne bien.

maintenant, est-il possible d'avoir différent type de retour (chaine de caracteres , tableau, ...);
p_m_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2008, 10h03   #6
Membre du Club
 
Inscription : avril 2006
Messages : 265
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 265
Points : 66
Points : 66
Bonjour,

comment récupérer une réponse XML ?

Merci
hacksi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2008, 11h40   #7
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Avec ? cURL ? Il n'y a qu'à récupérer le résultat de l'exécution de la fonction curl_exec (requiert l'option CURLOPT_RETURNTRANSFER à TRUE). Elle retourne une chaîne que vous pouvez traiter à votre guise dont la réinjecter sur une extension XML (DOM : méthode DomDocument#loadXML, SimpleXML : fonction simplexml_load_string - pour PHP 5) pour manipulation.

Cela dit, avec une version 5, on peut tout faire via la fonctionnalité allow_url_fopen ci celle-ci est active (nul besoin de passer par cURL).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2008, 18h52   #8
Membre du Club
 
Inscription : avril 2006
Messages : 265
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 265
Points : 66
Points : 66
Merci, c'est bon j'ai trouvé .
hacksi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h28.


 
 
 
 
Partenaires

Hébergement Web