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   -
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   Statut Membre Dernière intervention   727
 
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   Statut Membre Dernière intervention   30
 
Pas compris.
0
Sugel Messages postés 4076 Date d'inscription   Statut Membre Dernière intervention   727
 
^^'

    MPRP 
      |
     CMP
   /  |  \
CMP2,CMP3,CMP4 ect... 
0
Rayfi Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   30
 
Moui pas mal, j'attend d'autres propositions plus "facile".
0
Sugel Messages postés 4076 Date d'inscription   Statut Membre Dernière intervention   727
 
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   Statut Membre Dernière intervention   39
 
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   Statut Membre Dernière intervention   727
 
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   Statut Membre Dernière intervention   156
 
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   Statut Membre Dernière intervention   894
 
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   Statut Membre Dernière intervention   30
 
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   Statut Membre Dernière intervention   527
 
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   Statut Membre Dernière intervention   727
 
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 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
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   Statut Membre Dernière intervention   30
 
Et quand tout les liens de l'initiation se trouve dans une table ?
0
Sugel Messages postés 4076 Date d'inscription   Statut Membre Dernière intervention   727
 
explique toi....
0
Rayfi Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   30
 
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   Statut Membre Dernière intervention   527
 
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   Statut Membre Dernière intervention   30
 
Là c'est des requêtes GET....
0
Rayfi Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   30
 
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   Statut Membre Dernière intervention   21
 
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   Statut Membre Dernière intervention   21
 
un article pour vous aider à assimiler l'utilisation de cURL : http://ww12.xrecasens.info
0
[TiDi] Messages postés 126 Date d'inscription   Statut Membre Dernière intervention   262
 
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