MarvinLeRouge Posté 23 Août 2005 Posté 23 Août 2005 Salut, Je voudrais savoir s'il est possible de "relayer" le tableau $_POST ? Si on a un formulaire ayant comme cible a.php, peut-on faire un test, puis renvoyer le formulaire sur b.php, pour que les données POST soient récupérées et traitées par b.php ?
MS-DOS_1991 Posté 23 Août 2005 Posté 23 Août 2005 Salut marvin Pourquoi ne pas faire le test directement sur b.php puis continuer le traitement du formulaire ? ne serait-ce pas plus simple ?
Jan Posté 23 Août 2005 Posté 23 Août 2005 Je ne connais pas de solution satisfaisante à ce problème. A ma connaissance, ça nécessite qu'après le test, la page a.php envoie un formulaire vers b.php. Les champs de ce formulaire de a.php peuvent être cachés (hidden) et être des recopies des champs du formulaire initial, mais pour que ce nouveau formulaire soit soumis, il faut obligatoirement un clic du visiteur sur un bouton submit côté client. J'imagine que cette pseudo-solution ne te convient pas. Il y a bien sûr la possibilité de faire un submit automatique en javascript... mais c'est du javascript donc ça ne marchera pas à tous les coups. A défaut il y a le passage par GET. Désolé je n'ai pas mieux.
MarvinLeRouge Posté 23 Août 2005 Auteur Posté 23 Août 2005 _AT_MS-DOS : non ce n'est pas possible. La page a.php n'est en fait qu'un aiguillage qui doit permettre, en examinant une donnée post, de savoir si le reste des informations est destiné à b.php OU à c.php. _AT_Jan : bon ben apparemment, pas de solution satisfaisante à mon problème. Sniff
Country Posté 23 Août 2005 Posté 23 Août 2005 Ne serait-il pas plus judicieux d'examiner les données dans a.php puis d'inclure dans celui-ci (en fonction des données) b.php ou c.php qui effectuera par la suite le traitement en fonction ?
rportal Posté 23 Août 2005 Posté 23 Août 2005 voila comment envoyer une requete POST, tu peux t'en inspirer peut etre que ca repond a ta question: <?// Les données envoyées en POST sous forme d'url$data = 'txt1='.urlencode($txt1).'&txt2='.urlencode($txt2).'&id='.$id_session;// monfichier.php3 est l'URL du fichier devant recevoir la requete POST $message = "POST /monfichier.php3 HTTP/1.0\r\n";$message .= "Content-type: application/x-www-form-urlencoded\r\n";$message .= "Content-length: ".strlen( $data )."\r\n";$message .= "\r\n";$message .= $data."\r\n";// monserveur correspond au serveur qui doit recevoir la requete$fd = fsockopen( "monserveur", 80 );fputs($fd,$message);fclose($fd);?>
Anonymus Posté 23 Août 2005 Posté 23 Août 2005 Il est possible de relayer des variables $_POST, comme si elles venaient d'un formulaire classique, et ceci sans clic supplémentaire de l'utilisateur. Ceci dit, la meilleure solution serait a priori de faire ca en include.. J'te ponds un exemple, et je reviens
rportal Posté 23 Août 2005 Posté 23 Août 2005 regarde ce post sur un autre forum, il reprend la methode que j'ai donné plus haut et fait a peu pres ce que tu veux: http://forum.hardware.fr/hardwarefr/Progra...jet-74579-1.htm
Anonymus Posté 23 Août 2005 Posté 23 Août 2005 <?$dom = "www.domaine.com"; $url = "/repertoire/page.php"; $query = "nom=galle&prenom=nico&truc=machin"; $headers = "POST $url HTTP/1.1\r\n"; $headers .= "HOST: $dom \r\n"; $headers .= "Content-Type: application/x-www-form-urlencoded\r\n"; $headers .= "Content-Length: " . strlen($query) . "\r\n\r\n"; $fp = fsockopen ($dom, 80, $errno, $errstr, 30); fputs ($fp, $headers . $query); while ( !feof($fp) ) { $response = fread($fp,1024); print $response; }fclose($fp);?> La seule chose à faire en supp., ca serait de passer les variables par 'urlencode', pour éviter les problèmes d'encodage de caractères. Mais le principe est là. Testé, ca marche _AT_Rportal, c'est bien là que je l'ai pris (aussi )
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant