Envoyer une requête POST sur plusieurs pages
Rayfi
Messages postés
205
Date d'inscription
Statut
Membre
Dernière intervention
-
Xavierdu34 Messages postés 216 Date d'inscription Statut Membre Dernière intervention -
Xavierdu34 Messages postés 216 Date d'inscription Statut Membre Dernière intervention -
J'ai un projet personnel en PHP, en faite je veux essayer d'envoyer une seul requête POST sur plusieurs pages jvais vous faire un schéma
Ma page qui va envoyer la requête POST = MPRP
Cible qui va recevoir la requête = CMP (il y en à plusieurs)
MPRP ===========> CMP,CMP2,CMP3,CMP4 ect...
Si vous avez bien compris, je veux juste envoyer une même requête POST sur plusieurs pages en même temps, et sans redirection.
Je sais pas si c'est un formulaire ou un code en PHP.
Ma page qui va envoyer la requête POST = MPRP
Cible qui va recevoir la requête = CMP (il y en à plusieurs)
MPRP ===========> CMP,CMP2,CMP3,CMP4 ect...
Si vous avez bien compris, je veux juste envoyer une même requête POST sur plusieurs pages en même temps, et sans redirection.
Je sais pas si c'est un formulaire ou un code en PHP.
A voir également:
- Envoyer une requête POST sur plusieurs pages
- Comment supprimer une page sur word - Guide
- Comment envoyer une invitation sur facebook - Guide
- Imprimer tableau excel sur une page - Guide
- Impossible d'envoyer messenger - Forum Facebook Messenger
- Post it windows - Télécharger - Agendas & Calendriers
8 réponses
Je n'y connait rien en php, mais c'est pas possible avec un post:
le mieux serait de faire un post vers une page qui vas se charger de faire la distribution ;-)
Je dis ça sans aucune connaissance, donc frappez pas x)
le mieux serait de faire un post vers une page qui vas se charger de faire la distribution ;-)
Je dis ça sans aucune connaissance, donc frappez pas x)
Salut,
va faire un tour ici, si j'ai bien compris, c'est ce que tu cherches à faire:
https://forum.tomsguide.fr/threads/formulaire-php-deux-pages.307942/
va faire un tour ici, si j'ai bien compris, c'est ce que tu cherches à faire:
https://forum.tomsguide.fr/threads/formulaire-php-deux-pages.307942/
Bonjour,
Etant donné qu'une requête (POST ou GET) = 1 destination, je ne vois que 3 possibilités.
1 - Soit tu fais du "distribué" comme sugel la dis plus haut, c a dire
MPRP
|
CMP
/ | \
CMP2,CMP3,CMP4 ect...
et c pas compliqué avec un minimum de connaissance php
2 - soit tu fais du "série" MPRP -> CMP1 -> CMP2 -> CMP3 ....
(mais bof, perso j'aime pas)
3 - soit tu fait du "parallèle", et je pense que c un peu ce que tu veux avec des contraintes, c a dire faire autant de requête POST que de CMP (et c faisable en Javascript)
Normalement on a 1 formulaire, 1 submit donc 1 requete post mais on peut faire
1 formulaire, 1 bouton qui lance un javascript qui lui fait plusieurs requetes post (en ajax par exemple)
il y a peu être d'autre solution
Cordialement
Etant donné qu'une requête (POST ou GET) = 1 destination, je ne vois que 3 possibilités.
1 - Soit tu fais du "distribué" comme sugel la dis plus haut, c a dire
MPRP
|
CMP
/ | \
CMP2,CMP3,CMP4 ect...
et c pas compliqué avec un minimum de connaissance php
2 - soit tu fais du "série" MPRP -> CMP1 -> CMP2 -> CMP3 ....
(mais bof, perso j'aime pas)
3 - soit tu fait du "parallèle", et je pense que c un peu ce que tu veux avec des contraintes, c a dire faire autant de requête POST que de CMP (et c faisable en Javascript)
Normalement on a 1 formulaire, 1 submit donc 1 requete post mais on peut faire
1 formulaire, 1 bouton qui lance un javascript qui lui fait plusieurs requetes post (en ajax par exemple)
il y a peu être d'autre solution
Cordialement
bien que je ne vois pas l'Intérêt d'envoyer vers plusieurs pages php,, tu pourrait faire plusieurs traitements php dans une même page
si c'est pour réa-ficher le résultat dans ton navigateur une seule page sera affichée.
sinon si tu y tiens vraiment une solution possible en javascript/ajax
(vas voir du côté de jQueryajax)
ça reviendrait au moment du post du formulaire à lancer plusieurs http_request simultanés vers CM1 CM2 etc..
par contre les scripts CM doivent être sur le même domaine il me semble
si c'est pour réa-ficher le résultat dans ton navigateur une seule page sera affichée.
sinon si tu y tiens vraiment une solution possible en javascript/ajax
(vas voir du côté de jQueryajax)
ça reviendrait au moment du post du formulaire à lancer plusieurs http_request simultanés vers CM1 CM2 etc..
par contre les scripts CM doivent être sur le même domaine il me semble
En faite j'abandonne, je préfères essayer avec le javascript qui doit être plus simples, le seuls problème c'est que comment recevoir une requête POST avec en javascript via un formulaire html ?
Faut passer par PHP mais j'ai besoin d'un code ou d'un lien.
Faut passer par PHP mais j'ai besoin d'un code ou d'un lien.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Voici un exemple simple d'envoi d'un formulaire à plusieurs fichiers php en utilisant jQuery.
Bonne journée
Voici un exemple simple d'envoi d'un formulaire à plusieurs fichiers php en utilisant jQuery.
<form id="monForm" action="" method="POST">
<label>Nom : <input type="text" name="nom" /></label>
<label>Prénom : <input type="text" name="prenom" /></label>
<input type="submit" id="envoyer" value="Envoyer" />
</form>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// lorsqu'on soumet le formulaire
$('#monForm').on('submit', function() {
// on sérialize les données du formulaire pour les envoyer
var data = $('#monForm').serialize();
// on envoi les infos du formulaire aux différentes adresses
$.post('http://www.exemple.com/fichier1.php', data);
$.post('http://www.exemple.com/fichier2.php', data);
$.post('http://www.exemple.com/fichier3.php', data);
// ...
return false; // on empêche le navigateur de soumettre lui-même le formulaire
});
});
</script>
Bonne journée
En complément voici un équivalent en PHP :
Bon développement
<?php
// lorsqu'on le formulaire est soumis
if (isset($_REQUEST['envoyer'])) {
// on construit nos paramètres d'url
$data = http_build_query($_REQUEST);
// on envoie les infos du formulaire aux différents fichiers
file_get_contents('http://www.exemple.com/fichier1.php?' . $data);
file_get_contents('http://www.exemple.com/fichier1.php?' . $data);
file_get_contents('http://www.exemple.com/fichier1.php?' . $data);
}
?>
<form id="monForm" action="#" method="POST">
<label>Nom : <input type="text" name="nom" /></label>
<label>Prénom : <input type="text" name="prenom" /></label>
<input type="submit" name="envoyer" value="Envoyer" />
</form>
Bon développement
C'est possible en php gràce à Curl :
Il faut bien sur avoir l'extension PHP Curl activé. (disponible sur la plupart des hébergeurs par défaut ou à rajouter dans un php.ini)
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_URL,"envoi.php"); // page cible curl_setopt($ch, CURLOPT_POST, 1); // On utilise la method POST curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST); // L'array à POSTer curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Pour avoir le retour de la page dans une variable voir $output plus loin. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, '5');// le temps avant un timeout de la connection. curl_setopt($ch, CURLOPT_REFERER, 'localhost'); // url référante curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //permet de suivre les redirections des headers. $output = curl_exec($ch); // éxécute et retourne le résultat dans $output; curl_setopt($ch, CURLOPT_URL,"envoi2.php"); // page cible 2 $output = curl_exec($ch); curl_close ($ch); ?>
Il faut bien sur avoir l'extension PHP Curl activé. (disponible sur la plupart des hébergeurs par défaut ou à rajouter dans un php.ini)
Et pourquoi tout simplement, ne pas utiliser les sessions ? C'est fait pour ça non ?
Dans ton formulaire, tu changes ta cible et tu mets verify.php, dans verify.php tu mets :
Ensuite, sur toute tes autres pages, tu récupère les posts sous la variable
Dans ton formulaire, tu changes ta cible et tu mets verify.php, dans verify.php tu mets :
session_start(); if (!isset($_POST['post1']) OR !isset ($_POST['post2'])) { echo 'Veuillez remplir tous les champs'; } else { $_SESSION['post1'] = $_POST['post1']; $_SESSION['post2'] = $_POST['post2']; }
Ensuite, sur toute tes autres pages, tu récupère les posts sous la variable
$_SESSION['post...']en n'oubliant pas de mettre à chaque fois que tu utilises une variable de session avant le chargement de la page HTML :
session_start();
et puis le php est plus propre...