Votre post2hostedscript.php
devra:
- Fetch tous les paramètres reçus comme GET
- Construct POST requête
- Envoyez-
- Et, sans doute, renvoyer le résultat de cette requête POST.
Cela peut probablement être fait en utilisant curl, par exemple; quelque chose comme cela devrait vous aider à démarrer:
$queryString = $_SERVER['QUERY_STRING'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.othersite.com/post2hostedscript.php");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $queryString);
curl_exec($ch);
curl_close($ch);
Pour une liste d'options qui peuvent être utilisées avec boucle, vous pouvez jeter un oeil à la page de curl_setopt
.
Ici, vous devrez utiliser, au moins:
CURLOPT_POST
: que vous voulez envoyer une requête POST, et non à un GET
CURLOPT_RETURNTRANSFER
: selon que vous voulez curl_exec
pour renvoyer le résultat de la requête, ou simplement le sortir.
CURLOPT_POSTFIELDS
: Les données qui seront affichées - c'est-à-dire ce que vous avez dans la chaîne de requête de votre demande entrante.
Et notez que la réponse de la requête POST peut inclure un en-tête HTTP intéressant - le cas échéant, vous devrez les chercher (voir l'option CURLOPT_HEADER
) et ré-envoyer les intéressants votre propre réponse (voir la fonction header
).
Et qu'est-ce que ce script est censé renvoyer après la requête GET? La réponse de l'autre script après le POST? –
Pourquoi un simple array_merge ($ _ POST, $ _GET) ne fonctionnerait-il pas? Vous pouvez ensuite appeler n'importe quel script, je pense. Je ne sais pas si des problèmes imminents. – pinaki
Pas une bonne idée.GET et POST sont conçus pour être séparés afin que les agents utilisateurs sachent ce qu'ils font lorsqu'ils suivent un lien ou publient un formulaire, c'est-à-dire que suivre un lien ne devrait pas avoir d'effets secondaires et émettre une requête GET plusieurs fois devrait avoir le même effet que de l'émettre une fois. –