Aller au contenu

Transmission du tableau $_POST


MarvinLeRouge

Sujets conseillés

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

_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

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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);
?>

Lien vers le commentaire
Partager sur d’autres sites

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

<?

$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 :D )

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...