Enviar una solicitud POST a varias páginas

Rayfi Mensajes publicados 234 Estado Miembro -  
Xavierdu34 Mensajes publicados 223 Estado Miembro -
Tengo un proyecto personal en PHP; en realidad quiero intentar enviar una sola solicitud POST a varias páginas. Te voy a hacer un diagrama

Mi página que va a enviar la solicitud POST = MPRP
Objetivo que va a recibir la solicitud = CMP (hay varios)

MPRP => CMP, CMP2, CMP3, CMP4, etc.

Si lo has entendido, solo quiero enviar la misma solicitud POST a varias páginas al mismo tiempo, y sin redirección.

No sé si es un formulario o código en PHP.

8 respuestas

  1. Sugel Mensajes publicados 4293 Fecha de registro   Estado Miembro Última intervención   728
     
    No sé mucho de PHP, pero no es posible con un post: lo mejor sería hacer un post hacia una página que se encargue de hacer la distribución ;-)

    Lo digo sin ningún conocimiento, así que no me golpeen x)

    --
    ------------------------------------------------------------------------------------
    "El miedo lleva a la ira. La ira lleva al odio. Y el odio ... lleva al sufrimiento." - Yoda
    0
    1. Rayfi Mensajes publicados 234 Estado Miembro 30
       
      No entendido.
      0
    2. Sugel Mensajes publicados 4293 Fecha de registro   Estado Miembro Última intervención   728
       
      ^^'

       MPRP | CMP / | \ CMP2,CMP3,CMP4 ect... 
      0
    3. Rayfi Mensajes publicados 234 Estado Miembro 30
       
      Bueno, no está mal, espero otras propuestas más “fáciles”.
      0
    4. Sugel Mensajes publicados 4293 Fecha de registro   Estado Miembro Última intervención   728
       
      de lo contrario, debe haber alguna forma de publicar cosas en javascript también, pero no es mi campo x)

      y luego el php es más limpio...
      0
  2. Kortalium Mensajes publicados 193 Fecha de registro   Estado Miembro Última intervención   39
     
    Hola,

    véngate por aquí, si entiendo bien, eso es lo que buscas hacer:
    https://forum.tomsguide.fr/threads/formulaire-php-deux-pages.307942/

    --
    Ride the Best or Die like the Rest
    0
    1. Sugel Mensajes publicados 4293 Fecha de registro   Estado Miembro Última intervención   728
       
      Hola Kortal :P

      no exactamente, me parece :/

      él quiere que un solo post sea enviado a diferentes php.

      ahí, proponemos publicar el mismo contenido en uno de los diferentes php.
      0
    2. Thorak83 Mensajes publicados 1140 Estado Miembro 156
       
      Hola, Dado que una petición (POST o GET) = 1 destino, solo veo 3 posibilidades. 1 - O haces algo "distribuido" como sugirió sugel antes, es decir MPRP | CMP / | \ CMP2,CMP3,CMP4 etc... y no es complicado con un mínimo de conocimiento de PHP 2 - O haces un "serie" MPRP -> CMP1 -> CMP2 -> CMP3 .... (pero meh, personalmente no me gusta) 3 - O haces algo de "paralelo", y creo que eso es más o menos lo que quieres, con ciertas restricciones, es decir hacer tantas peticiones POST como CMP (y se puede hacer en JavaScript) Normalmente hay 1 formulario, 1 envío, así que 1 petición post pero se puede hacer 1 formulario, 1 botón que ejecuta un JavaScript que a su vez realiza varias peticiones post (en ajax, por ejemplo) Puede haber quizá otras soluciones Cordialmente
      0
  3. Alain_42 Mensajes publicados 5413 Estado Miembro 904
     
    aunque no veo el interés de enviar a varias páginas PHP, podrías hacer varios procesos PHP en una misma página
    si es para mostrar el resultado en tu navegador, se mostrará solo una página.

    de lo contrario, si realmente lo prefieres, una solución posible en JavaScript/ajax

    (ve a ver del lado de jQueryajax)

    esto equivaldría, al momento del post del formulario, a lanzar varias http_request simultáneos hacia CM1 CM2 etc..

    por otro lado, los scripts CM deben estar en el mismo dominio, me parece que así es
    0
  4. Rayfi Mensajes publicados 234 Estado Miembro 30
     
    En fait j’abandonne, je préfère essayer avec le JavaScript qui doit être plus simples, le seul 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
  5. Pitet Mensajes publicados 2845 Estado Miembro 530
     
    Hola,

    Aquí tienes un ejemplo sencillo de envío de un formulario a múltiples archivos PHP utilizando jQuery.

     <form id="miForm" action="" method="POST"> 
    <label>Nombre : <input type="text" name="nom" /></label>
    <label>Apellido : <input type="text" name="prenom" /></label>

    <input type="submit" id="envoyer" value="Enviar" />
    </form>

    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script type="text/javascript">

    $(document).ready(function() {
    // cuando se envía el formulario
    $('#miForm').on('submit', function() {
    // serializamos los datos del formulario para enviarlos
    var data = $('#miForm').serialize();
    // enviamos la información del formulario a las diferentes direcciones
    $.post('http://www.ejemplo.com/archivo1.php', data);
    $.post('http://www.ejemplo.com/archivo2.php', data);
    $.post('http://www.ejemplo.com/archivo3.php', data);
    // ...

    return false; // evitamos que el navegador envíe el formulario por sí mismo
    });
    });

    </script>

    Que tengas un buen día
    0
    1. Sugel Mensajes publicados 4293 Fecha de registro   Estado Miembro Última intervención   728
       
      bien joué :)

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

      Je sais pas si quelqu'un a une solution PHP... bien hecho :)

      no lo he probado, pero debería funcionar...

      No sé si alguien tiene una solución en PHP...
      0
    2. ThEBiShOp Mensajes publicados 9307 Fecha de registro   Estado Colaborador Última intervención   1 606
       
      honestamente para hacer eso yo personalmente optaría también por AJAX.

      Pero creo que al repensar un poco tu sistema de script deberías poder hacerlo todo en uno solo porque este método me parece un poco caótico.
      0
    3. Rayfi Mensajes publicados 234 Estado Miembro 30
       
      ¿Y cuando todos los enlaces de la iniciación se encuentran en una tabla?
      0
    4. Sugel Mensajes publicados 4293 Fecha de registro   Estado Miembro Última intervención   728
       
      Explícate tú.
      0
    5. Rayfi Mensajes publicados 234 Estado Miembro 30
       
      Bueno, básicamente, todos los enlaces se encuentran en una base de datos SQL, y hacer este tipo de cosas: d)

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

      ¿Ves el Flan? (por cierto, hablo sobre todo de hacerlo bien, evidentemente en PHP.)
      0
  6. Pitet Mensajes publicados 2845 Estado Miembro 530
     
    Como complemento, aquí tienes un equivalente en PHP:

     <?php 
    // cuando el formulario se envía
    if (isset($_REQUEST['envoyer'])) {
    // construimos nuestros parámetros de la url
    $data = http_build_query($_REQUEST);

    // enviamos la información del formulario a los distintos archivos
    file_get_contents('http://www.ejemplo.com/fichero1.php?' . $data);
    file_get_contents('http://www.ejemplo.com/fichero1.php?' . $data);
    file_get_contents('http://www.ejemplo.com/fichero1.php?' . $data);
    }
    ?>
    <form id="miForm" action="#" method="POST">
    <label>Nombre : <input type="text" name="nom" /></label>
    <label>Apellido : <input type="text" name="prenom" /></label>

    <input type="submit" name="envoyer" value="Envoyer" />
    </form>

    Bon développement
    0
    1. Rayfi Mensajes publicados 234 Estado Miembro 30
       
      Allí son peticiones GET....
      0
    2. Rayfi Mensajes publicados 234 Estado Miembro 30
       
      Si no lo has entendido, solo quiero enviar a http://www.exemple.com/fichier1.php, http://www.exemple.com/fichier1.php y http://www.exemple.com/fichier1.php solicitudes POST y no GET.
      0
  7. Xavierdu34 Mensajes publicados 223 Estado Miembro 21
     
    ¿Es posible en PHP gracias a Curl:

    <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_URL,"envoi.php"); // página objetivo curl_setopt($ch, CURLOPT_POST, 1); // Usamos el método POST curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST); // El arreglo a POSTear curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Para obtener el retorno de la página en una variable ver $output más abajo. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, '5');// el tiempo antes de un timeout de la conexión. curl_setopt($ch, CURLOPT_REFERER, 'localhost'); // url referer curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //permite seguir las redirecciones de los headers. $output = curl_exec($ch); // ejecuta y devuelve el resultado en $output; curl_setopt($ch, CURLOPT_URL,"envoi2.php"); // página objetivo 2 $output = curl_exec($ch); curl_close ($ch); ?>


    Por supuesto hay que tener activada la extensión PHP Curl. (disponible en la mayoría de los hostings por defecto o hay que añadirla en un php.ini)
    0
    1. Xavierdu34 Mensajes publicados 223 Estado Miembro 21
       
      un artículo para ayudarte a asimilar el uso de cURL: http://ww12.xrecasens.info
      0
  8. [TiDi] Mensajes publicados 124 Fecha de registro   Estado Miembro Última intervención   262
     
    ¿Y por qué simplemente no usar sesiones? ¿No es para eso?

    En tu formulario, cambias el objetivo y pones verify.php, en verify.php pones:

     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']; } 


    Luego, en todas tus demás páginas, recuperas los posts bajo la variable
    $_SESSION['post...']
    sin olvidar poner cada vez que utilices una variable de sesión antes de la carga del HTML la página:
    session_start();


    --
    TiDi
    0