Envoyer une requête POST sur plusieurs pages

Fermé
Rayfi Messages postés 205 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 28 juin 2017 - Modifié par Rayfi le 4/09/2013 à 23:10
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 - 2 mai 2014 à 11:39
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.
A voir également:

8 réponses

Sugel Messages postés 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 726
4 sept. 2013 à 23:09
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)
0
Rayfi Messages postés 205 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 28 juin 2017 30
4 sept. 2013 à 23:09
Pas compris.
0
Sugel Messages postés 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 726
4 sept. 2013 à 23:13
^^'

    MPRP 
      |
     CMP
   /  |  \
CMP2,CMP3,CMP4 ect... 
0
Rayfi Messages postés 205 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 28 juin 2017 30
4 sept. 2013 à 23:15
Moui pas mal, j'attend d'autres propositions plus "facile".
0
Sugel Messages postés 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 726
4 sept. 2013 à 23:17
sinon, il doit y avoir moyen de poster des trucs en javascript aussi, mais c'est toujours pas mon domaine x)

et puis le php est plus propre...
0
Kortalium Messages postés 183 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 16 novembre 2013 39
5 sept. 2013 à 01:13
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/

0
Sugel Messages postés 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 726
5 sept. 2013 à 06:47
Salut Kortal :P

pas vraiment, il me semble :/

lui, il veut qu'un seul post soit envoyé à différents php.

la, on propose de poster le même contenu à un des différents php.
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
Modifié par Thorak83 le 5/09/2013 à 08:06
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
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 5/09/2013 à 11:15
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
0
Rayfi Messages postés 205 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 28 juin 2017 30
Modifié par Rayfi le 5/09/2013 à 21:57
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
6 sept. 2013 à 15:46
Salut,

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
0
Sugel Messages postés 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 726
6 sept. 2013 à 16:13
bien joué :)

j'ai pas testé, mais ça devrait marcher...

Je sais pas si quelqu'un a une solution PHP...
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
6 sept. 2013 à 16:17
honnêtement pour faire ça personnellement j'opterais également pour de l'ajax.

Mais je pense qu'en repensant un peu ton système de script tu devrais pouvoir tout faire en un seul parce que cette méthode me semble un peu chaotique.
0
Rayfi Messages postés 205 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 28 juin 2017 30
24 nov. 2013 à 02:36
Et quand tout les liens de l'initiation se trouve dans une table ?
0
Sugel Messages postés 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 726
25 nov. 2013 à 19:12
explique toi....
0
Rayfi Messages postés 205 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 28 juin 2017 30
27 nov. 2013 à 19:13
Bah en gros, tout les liens se trouve dans une BDD SQL, et faire ce genre de choses :d)

var link = 'SELECT allLink FROM bdd';
$.post(link, data);

Vous voyez le délires ? (au passage, je parles surtout de le faire bien evidement en PHP.)
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
6 sept. 2013 à 16:38
En complément voici un équivalent en PHP :

<?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
0
Rayfi Messages postés 205 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 28 juin 2017 30
7 sept. 2013 à 21:03
Là c'est des requêtes GET....
0
Rayfi Messages postés 205 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 28 juin 2017 30
7 sept. 2013 à 21:06
Si t'as pas compris, je cherche juste à envoyer à http://www.exemple.com/fichier1.php, http://www.exemple.com/fichier1.php et http://www.exemple.com/fichier1.php des requêtes POST et non GET.
0
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
Modifié par Xavierdu34 le 2/12/2013 à 02:50
C'est possible en php gràce à Curl :

<?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)
0
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
2 mai 2014 à 11:39
un article pour vous aider à assimiler l'utilisation de cURL : http://ww12.xrecasens.info
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
13 févr. 2014 à 22:49
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 :

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

0