Envoi de POST vers un autre serveur avec HEADER [RESOLU] - PHP - Programmation
Marsh Posté le 22-07-2005 à 18:20:16
Avec le PHP, regarde du coté de la fonction header();
Tu pourra envoyer des requetes HTTP (en POST/GET), depuis le serveur, sans se soucier de qui a cliqué sur le bouton "envoyer". Pour l'utilisateur, c'est complètement transparent.
Marsh Posté le 22-07-2005 à 19:44:10
Dans ce genre de cas y a pas besoinde header()
mais seulement d'un traitement HTTP POST comme la dit skylight
d'un coter ta page avec ton form
Code :
|
et de l'autre
Code :
|
Marsh Posté le 22-07-2005 à 19:45:10
Bah si faut un header, pour pouvoir réenvoyer la requête vers le serveur web
Marsh Posté le 16-08-2005 à 01:03:31
plopplop j'y reviens, comment utiliser la fonction header pour transmettre des requetes POST ?
j'ai lu la doc de la fontion mais j'avoue ne pas saisir en quoi cela m'aide
Marsh Posté le 16-08-2005 à 11:10:44
Bas moi non plus la fonction Header permet une redirection en fin tel que je l'utilise
genre tu fait ton formulaire
tu fait le traitement du formulaire en incluant une gestion de saisie genre
Code :
|
C'est encre les vacances pour moi donc il se peut qu'il y est des erreur un j'ai fait cela a la va vite mais c'est en gros comme ca que je l'utilise
Marsh Posté le 16-08-2005 à 11:18:49
j'avoue que j'ai du mal a saisir sur le principe comment cette fonction va me permettre de résoudre mon problème de lancement de connection ...
et moi aussi je rentre de vacances c'est dur pour tout le monde
Marsh Posté le 16-08-2005 à 11:50:41
Donc si je comprends bien j'ai juste à modifier le form action pour le rediriger en local vers mon serveur...
Marsh Posté le 16-08-2005 à 16:38:04
Disons que tu as deux method qui s'ouvre a toi
soit tu fait ton form et ton traitement de form dans le meme fichier pour cela tu reprendra le meme type que mon code ci dessous et tu rajoutera la partie HTML a la fin comme suis
Code :
|
Soit tu fait un fichier pour le form (que tu HTML) et un fichier de traitement (php)
donc ton code html pour form sera
Code :
|
et le fichier send form sera du type
Code :
|
Marsh Posté le 16-08-2005 à 17:02:26
Oui mais le problème c'est que les variables POST récupérées doivent etre transmises vers un site extérieur à l'intranet. Le code que tu me présentes ne fera que rediriger l'utilisateur vers la page d'index apres le traitement du formulaire non ?
Pour ma part j'ai
Code :
|
le script se présente sous la forme suivante :
Code :
|
Si je modifie mon script avec un action="val.php" et que dans ce val je fais un header vers smsextrapro, est ce que les variables POST seront transmises automatiquement ?
Marsh Posté le 16-08-2005 à 18:48:54
non je ne crois pas que les variable suivront
mais tu peux essayé de les transférer via l'url cherche des tuto php je ne sais plus comment on fait cela car je ne l'utilise jamais mais dans ton cas cela pourra surement t'aider
genre tu faire un
Code :
|
le ? permet de joindre des chose a ton url je m'en sert pour la gestion d'erreur des formulaires
Marsh Posté le 16-08-2005 à 23:17:15
oui mais a ce moment la c'est du GET et moi je dois impérativement le faire en POST
Marsh Posté le 17-08-2005 à 04:08:51
c'est fou le nombre de gens qui font du PHP, qui ont des connaissances sur le PHP, mais qui les exploitent n'importe comment.
Marsh Posté le 17-08-2005 à 14:08:05
Moi j'apprend tous seule cela fait 3 mois que je m'y suis mis a mes moment de libre
je ne suis pas du tout développeur et donc pas du tout l'esprit et la facon de penser des developpeur du fait que je suis admin system et reseau.
Ensuite j'essai d'aider avec le peu de connaissance que j'ai si ce que je dit c'est du n'importe quoi libre a toi de me corriger tout le monde à apprendre de tout le monde.
Marsh Posté le 17-08-2005 à 15:50:56
gatsusat a écrit : c'est fou le nombre de gens qui font du PHP, qui ont des connaissances sur le PHP, mais qui les exploitent n'importe comment. |
Garde ca pour toi tu fais rien avancé ....
Marsh Posté le 17-08-2005 à 15:54:31
hyptnos a écrit :
|
A priori c est pas suffisant de declarer les variable "$pseudo" et "$pass" avant un header pour qu elles soient transmises en post avec le header.
Je me demande meme si c est possible de transmettre des variable en POST avec un header
Un expert pour nous dire si c est possible de transmettre des variables en POST avec un header ?
Marsh Posté le 17-08-2005 à 15:55:47
td-rat a écrit : |
Oui, c'est possible.
le type de requete figure dans l'entete d'une requete HTTP.
Quand tu navigues sur le net, ton navigateur utilise principalement, sans que tu le saches, des requetes de type GET.
Marsh Posté le 17-08-2005 à 15:55:56
gatsusat a écrit : c'est fou le nombre de gens qui font du PHP, qui ont des connaissances sur le PHP, mais qui les exploitent n'importe comment. |
remarque inutile ! merci d'éviter ce genre de sortie à l'avenir.
Marsh Posté le 17-08-2005 à 16:02:35
skylight a écrit : Oui, c'est possible. |
Aurais tu un exemples pour montrer comment faire ?
Juste histoire de transmettre une variable $xxx vers header('location:index.php');
Merci
Marsh Posté le 17-08-2005 à 16:07:19
Je n'ai pas d'exemples sous la main, mais sur le net, il doit y en avoir quelques uns
Marsh Posté le 17-08-2005 à 16:16:09
td-rat a écrit : Aurais tu un exemples pour montrer comment faire ? |
Attention, ne pas confondre header("Location:xxx.php" ); et header();
Location sert juste pour une redirection normale ... !
Marsh Posté le 17-08-2005 à 16:20:12
$vars = "id=1&pipi=kaka&hihi=haha&moi=pmusa";
header("POST http://www.sitedistant.com/lapage.php HTTP/1.1" );
header("HOST: www.moi.com" );
header($vars);
header("Content-type : application/x-www-form-urlencoded" );
header("Content-Length : " . strlen($vars));
ça peut ptetre marcher.
je faisais sensiblement cela pour mon bot de requêtes automatisées à la difference que j'ouvrais un socket sur le site.
http://forum.hardware.fr/hardwaref [...] 4658-1.htm
Marsh Posté le 17-08-2005 à 17:16:44
oui j'avais parcouru ton post lors de mes recherches sur le sujet pmusa.
concernant les exemples j'avais aussi fait quelques recherches mais ca n'a pas été concluant, j'essayerai de creuser plus profond ce soir dans ce cas.
Merci de tenter de vous interesser à mon problème en tout cas .
Marsh Posté le 17-08-2005 à 21:18:04
Merci de tenir au courant de l'avance du probleme car cela m'interesse beaucoup de transferer des variables de cette manière
Marsh Posté le 18-08-2005 à 10:15:10
http://www.faqts.com/knowledge_bas [...] 039/fid/51
http://codewalkers.com/archives/phpcoding/8293.html
mais ca ne passe pas reellement par la fonction header ...
je vais faire quelques tests la dessus et sinon je verrai ca directement avec l'equipe de smsextrapro j'ai l'impression...
Marsh Posté le 18-08-2005 à 10:54:03
J'ai essayé quelque chose comme ca,
ca ne renvoie pas d'erreur mais la variable réponse reste vide, donc est ce que je fais mal quelque chose ou est ce que le probleme vient de leur coté maintenant je ne sais pas ...
Quelqu'un a un commentaire a faire sur ce code avant que je demande directement auprès d'eux ?
Code :
|
Marsh Posté le 18-08-2005 à 11:06:19
précise l'entête "HOST", essaye de passer au protocole http/1.1, et insère "echo $reponse;" dans ta boucle while. et évite l'opérateur de contrôle "@" pour l'instant.
Marsh Posté le 18-08-2005 à 11:11:54
ha je vois le msg d'erreur renvoyé par le serveur distant déjà ^^
Citation : http://www.smsextrapro.com |
Je vais essayer en précisant HOST et en passant en 1.1
Marsh Posté le 18-08-2005 à 11:14:04
désolé, je vais peut être dire une connerie, mais je crois que dans ton cas, tu te prend la tete pour rien.
tu veux que les machines du réseau demande à la machine passerelle (celle qui a la connection) d'envoyer pour elles le formulaire en POST au site smsextrapro.com....
heu, sauf erreur de ma part, si tu active le partage de connexion sur la passerelle, et que sur les autres PC, tu rentre en adresse passerelle, l'IP du poste qui à la connexion, (ou alors tu laisses tous les postes de l'intranet en IP automatique (DHCP)), et tous les poste seront capables de "résoudre" l'url smsextrapro.com
Et donc ton script du début fonctionnera pour toute les machines...
Marsh Posté le 18-08-2005 à 11:18:46
l3eleg a écrit : ha je vois le msg d'erreur renvoyé par le serveur distant déjà ^^
|
$site = "www.smsextrapro.com";
et pas
$site = "http://www.smsextrapro.com";
tu précise dejà dans les entêtes que tu fais ça avec le protocole HTTP et sa version 1.0 ou 1.1.
Marsh Posté le 18-08-2005 à 11:22:00
Xav_ a écrit : désolé, je vais peut être dire une connerie, mais je crois que dans ton cas, tu te prend la tete pour rien. |
A mon avis, il ne peut pas activer le partage sinon il poserai pas cette question
Marsh Posté le 18-08-2005 à 11:22:21
ca y est ca marche !!!!
Le code qui va bien donc :
Code :
|
Voila pour ceux que ca interessait.
Merci à ceux qui m'ont filé quelques pistes pour m'orienter
Bonne fin de journée à tous !
Marsh Posté le 18-08-2005 à 11:23:32
skylight a écrit : A mon avis, il ne peut pas activer le partage sinon il poserai pas cette question |
good answer
Marsh Posté le 18-08-2005 à 11:23:43
De rien !
A la ligne 11, tu ne te sers meme pas de ta variable $site ?
Marsh Posté le 18-08-2005 à 11:24:32
Reply
Marsh Posté le 22-07-2005 à 18:16:35
Bonjour à tous,
je travaille actuellement sur un formulaire d'envoi de SMS à l'aide d'un prestataire externalisé.
Le code que j'ai créé fonctionne parfaitement sur le pc de developpement, celui qui possède l'acces a la connection internet, voila le probleme que je rencontre :
lorsque l'un de mes utilisateurs se connecte sur l'intranet, il accede au formulaire et rentre les infos necessaires, le problème vient du moment ou il envoie les données :
Le soucis c'est que l'utilisateur, comme il n'est pas sur le pc ou se trouve la ligne internet, ne parvient pas à resoudre l'adresse smsextrapro.com.
L'idéal serait donc à mon avis de faire faire l'envoi des données du formulaire en local sur le serveur (qui lui peut résoudre l'url), donc en passant par php et pas par le form en html.
Le pc qui sert de serveur est le seul à être connecté sur internet, et ceci en bas débit
Si quelqu'un a des idées, des suggestions, je suis preneur
Message édité par l3eleg le 18-08-2005 à 11:42:22