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 05/09/2007, 12h33   #1
Membre éprouvé
 
Avatar de d-Rek
 
Développeur Web
Inscription : janvier 2007
Messages : 438
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2007
Messages : 438
Points : 400
Points : 400
Par défaut Webservice transfert des POST/GET

Bonjour à tous,

Comment re-balancer toutes les variables POST et GET reçues sur ma page proxy.php (webservice).

Cette page doit inclure l'URL de destination de mon application serveur (avec un port dans l'URL notamment) qui est sur un domaine différent.

J'utilise
Code :
1
2
3
4
5
6
$toPOST='';
	while(list($key, $value)=each($_POST)){
		$$key=$value;
		$toPOST.=($toPOST=='')?$$key.'='.$value:'&'.$$key.'='.$value;
	}
	echo $toPOST;
Mais $$key ne me donne pas le nom de la variable mais plutôt value=value

Quelqu'un à une idée pour rebalancer les POST ?
http_post_data($url, $toPOST); ne fonctionne pas.

Merci à tous
__________________
Mon blog
d-Rek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 13h10   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
pk tu utilises pas juste $key tout simplement la ??
Code :
1
2
3
4
5
6
$toPOST='';
foreach($_POST as $cle => $valeur)
{
$toPOST.=($toPOST=='')?$cle .'='.$valeur:'&'.$cle.'='.$valeur;
}
echo $toPOST;
et là tu les "rebalances" en GET
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 14h08   #3
Membre éprouvé
 
Avatar de d-Rek
 
Développeur Web
Inscription : janvier 2007
Messages : 438
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2007
Messages : 438
Points : 400
Points : 400
Ok niquel, par contre, je n'ai pas le droit de les balancer en GET.
Le dév de l'appli serveur va devoir modifier toutes les procédures..
On s'était mis d'accord sur ce protocole d'échanges de données en GET et en POST pour une procédure donnée (chaque).

J'include le chemin du serveur en lui passant les GET en fin de script
Code PHP :
<?php include "http://server.domain.com:222/?get1=val1&get2=val2"; ?>
Comment lui passer mes POST ?

Une méthode barbare serait de reconstruire un formulaire et de le soumettre sur le OnLoad mais je l'exclue.

Je viens de faire un test avec une page test.php au lieu de mon appli serveur..
Code PHP :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$toPOST='';
foreach($_POST as $cle => $valeur){
	$toPOST.=($toPOST=='')?$cle .'='.$valeur:'&'.$cle.'='.$valeur;
}
 
$toGET='';
foreach($_GET as $cle => $valeur){
	$toGET.=($toGET=='')?$cle .'='.$valeur:'&'.$cle.'='.$valeur;
}
 
echo 'POST : '.$toPOST.'
GET : '.$toGET;
?>

Firebug me répond bien mes POST et mes GET (en tant que responseText) donc l'include suffit à rendre accessible ces variables par mon appli.
Je vois donc pas où ça coince..
__________________
Mon blog
d-Rek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 18h11   #4
Membre éprouvé
 
Avatar de d-Rek
 
Développeur Web
Inscription : janvier 2007
Messages : 438
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2007
Messages : 438
Points : 400
Points : 400
Citation:
Envoyé par moi-même
l'include suffit à rendre accessible ces variables par mon appli
Faux !
Pour je ne sais quelle raison, PHP coupe les headers HTTP après la première ligne. (ayant analysé les informations entrantes sur mon appli serveur)
Les POST n'arrivent donc pas chez mon appli.

En configurant IE pour faire du cross domain, tout passe bien. Ca coince au niveau de proxy.php par déduction.

Une idée ?
PS : cela vaut aussi bien pour uniquement du simple POST vers une appli serveur car je fais :
Code php :
<?php include "http://server.domain.com:222/?".$toGET; ?>
Contrairement au test de mon post précédent, PHP n'a pas de mal. Récupère t-il tous les headers HTTP ? en a t-il besoin ?
__________________
Mon blog
d-Rek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 11h53   #5
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
Bonjour a tous

Citation:
Comment re-balancer toutes les variables POST et GET reçues sur ma page proxy.php
Allo Houston la communication est bzzii...

Peut etre que ce code pourrais te donner un element de réponse.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<?php
//$URL=$_GET['url'];// 'http://server.domain.com'
//unset($_GET['url']);
 
$GET_DATA = http_build_query($_GET);
$POST_DATA = http_build_query($_POST);
 
$context_options = array (
        'http' => array (
            'method' => 'POST',
            'header'=> "Content-type: application/x-www-form-urlencoded\r\n"
            ."Content-Length: " . strlen($POST_DATA) . "\r\n",
            'content' => $POST_DATA
            )
        );
 
$context = context_create_stream($context_options)
$fp = fopen('http://server.domain.com:222/?'.$GET_DATA, 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h37.


 
 
 
 
Partenaires

Hébergement Web