Remi Posté 25 Novembre 2008 Posté 25 Novembre 2008 Bonjour, Je cherche le moyen de faire un header location (sur une url externe à mon site) avec passage de paramètres en POST. Les solutions avec fsockopen permettent de lire l'URL externe mais moi je désire qu'elle soit affichée (avec son URL dans la barre d'adresse). Autre contrainte : Je dois utiliser POST pour lui passer les données (pas de GET possible) Y a t-il une solution ?
Kioob Posté 26 Novembre 2008 Posté 26 Novembre 2008 déjà, "Location:" = requête GET, pas le choix. Après coté fsockopen, je ne vois pas le rapport avec ton "Location", mais avec ça tu peux parfaitement générer du POST ou tout autre type de requête. Si ça te semble trop complexe, tu peux aussi utiliser curl.
jcaron Posté 26 Novembre 2008 Posté 26 Novembre 2008 J'ai pas tout suivi, mais si tu veux que ce soit le browser de l'utilisateur qui fasse ce POST, la seule soution c'est une page HTML qui contient le formulaire avec toutes les données et un bout de JS pour faire un mon_formulaire.submit(); Si ça n'a pas d'importance que ce soit toi ou l'utilisateur qui fasse ce POST, tu peux le faire depuis ton serveur via curl ou fsockopen. Jacques.
Remi Posté 26 Novembre 2008 Auteur Posté 26 Novembre 2008 Oui je sais que je peux simuler un Submit en Javascript mais je trouve que ce n'est pas propre. C'est pour passer sur un module de banque pour un paiement en ligne et donc il faut des choses très transparentes et claires pour le visiteur. Bon, si je ne peux faire l'équivalent d'un Header Location avec passage de données en POST, je vais rajouter une page de confirmation.
Remi Posté 30 Novembre 2008 Auteur Posté 30 Novembre 2008 J'ai regardé curl, mais il ne permet rien de plus que ce qu'on peut faire à la main avec fsockopen : on peut passer des params en POST, on *lit* l'url cible mais on reste sur l'url du script appelant. J'ai bien trouvé "header location" en code 307, apparamment le seul qui transmet les POST mais cela génére un message de confirmation sur les navigateurs et le fonctionnement n'est pas garanti en http 1.0. C'est amusant : je ne m'étais jamais rendu compte qu'il était impossible de passer à la main des paramètres en POST.
Kioob Posté 30 Novembre 2008 Posté 30 Novembre 2008 J'ai regardé curl, mais il ne permet rien de plus que ce qu'on peut faire à la main avec fsockopen Encore heureux ! fsockopen() te permet "d'implémenter" le protocole HTTP à 100% (ainsi que beaucoup d'autres protocoles d'ailleurs). La grosse différence c'est que curl() est évidement beaucoup plus simple d'utilisation car de nombreuses choses sont déjà implémentées, telles que le HTTPS, la gestion des cookies et le suivi des redirections par exemple. Dans tous les cas je ne vois pas où est le problème... à moins que je n'ai pas compris ce que tu cherches à faire. C'est amusant : je ne m'étais jamais rendu compte qu'il était impossible de passer à la main des paramètres en POST. Oui... comme toute requête HTTP. Mais il est normalement plus difficile de forcer un navigateur à générer un POST qu'un GET.
Remi Posté 30 Novembre 2008 Auteur Posté 30 Novembre 2008 Dans tous les cas je ne vois pas où est le problème... à moins que je n'ai pas compris ce que tu cherches à faire. Ce que je cherche à faire est assez simple : l'équivalent d'un header location avec passage des params en POST. Maintenant que je sais que ce n'est pas possible, je vais faire en sorte de m'en passer... Ce n'est pas bien grave.
Kioob Posté 30 Novembre 2008 Posté 30 Novembre 2008 Bah ce n'est pas possible de manière 100% identique non, ça c'est sûr et certain. Maintenant si tu te contrefiches de l'IP qui soumet le formulaire, un script PHP qui déclenche la même chose en curl/fsockopen fait parfaitement l'affaire. Mais dans ce cas, je vois pas bien où est le soucis...
captain_torche Posté 1 Décembre 2008 Posté 1 Décembre 2008 Tu cherches à créer un lien vers une page de formulaire, si j'ai bien compris. Si c'est bien ça, pourquoi ne pas créer un formulaire masqué (tous les champs en hidden), et de modifier le look du bouton submit via CSS pour qu'il ait l'air d'un lien ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant