Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: darg94 en 10 Abril 2014, 18:50 pm



Título: [Ayuda] Múltiples formularios, método POST
Publicado por: darg94 en 10 Abril 2014, 18:50 pm
Hola a todos,

pues estoy intentando loguearme a dos sitios a la vez que usan exactamente las mismas tablas de usuario y password en su base de datos, y he tenido la idea de enviar dos formularios, metodo POST a la vez, uno a un server y uno al otro. Lo tengo todo listo, mi duda solo es cómo puedo hacerlo para que, rellenando solamente un formulario, se envien los DOS post,

la idea que tengo es que: uno puede estar en oculto y rellenarse automáticamente a costa del otro mediante variables, de alguna forma.

pero no tengo ni idea de como hacerlo.

Un POST ya está hecho, el de 1 sitio web, os lo dejo aquí.
En este caso, se trata de WORDPRESS:

Código
  1. <form name="' . $args['form_id'] . '" id="' . $args['form_id'] . '" action="' . esc_url( site_url( 'wp-login.php', 'login_post' ) ) . '" method="post">
  2.                        ' . apply_filters( 'login_form_top', '', $args ) . '
  3.                        <p class="login-username">
  4.                                <label for="' . esc_attr( $args['id_username'] ) . '">' . esc_html( $args['label_username'] ) . '</label>
  5.                                <input type="text" name="log" id="' . esc_attr( $args['id_username'] ) . '" class="input" value="' . esc_attr( $args['value_username'] ) . '" size="20" />
  6.                        </p>
  7.                        <p class="login-password">
  8.                                <label for="' . esc_attr( $args['id_password'] ) . '">' . esc_html( $args['label_password'] ) . '</label>
  9.                                <input type="password" name="pwd" id="' . esc_attr( $args['id_password'] ) . '" class="input" value="" size="20" />
  10.                        </p>
  11.                        ' . apply_filters( 'login_form_middle', '', $args ) . '
  12.                        ' . ( $args['remember'] ? '<p class="login-remember"><label><input name="rememberme" type="checkbox" id="' . esc_attr( $args['id_remember'] ) . '" value="forever"' . ( $args['value_remember'] ? ' checked="checked"' : '' ) . ' /> ' . esc_html( $args['label_remember'] ) . '</label></p>' : '' ) . '
  13.                        <p class="login-submit">
  14.                                <input type="submit" name="wp-submit" id="' . esc_attr( $args['id_submit'] ) . '" class="button-primary" value="' . esc_attr( $args['label_log_in'] ) . '" />
  15.                                <input type="hidden" name="redirect_to" value="' . esc_url( $args['redirect'] ) . '" />
  16.                        </p>
  17.                        ' . apply_filters( 'login_form_bottom', '', $args ) . '
  18.                </form>

Muchas Gracias!!!



PD soy administrador, asi que puedo usar el lenguaje que sea para hacerlo, solo diganme como y lo hago :)


Título: Re: [Ayuda] Múltiples formularios, método POST
Publicado por: EFEX en 11 Abril 2014, 00:47 am
Podrias utilizar JQuery, existe un plugin jquery.form, cuando se envie el primero obtenes los valores del primero que se relleno y envias el segundo..

http://malsup.com/jquery/form/#ajaxForm


Título: Re: [Ayuda] Múltiples formularios, método POST
Publicado por: Pablo Videla en 19 Abril 2014, 03:04 am
Vas a tener problemas con las peticiones cross-domain, te recomiendo echar un vistazo a esto si vas a usar AJAX con jQuery.

http://www.funcion13.com/2012/04/12/como-realizar-peticiones-ajax-cross-domain-jsonp-jquery/


Título: Re: [Ayuda] Múltiples formularios, método POST
Publicado por: Graphixx en 20 Abril 2014, 04:43 am
(http://www.starthack.com/file_struct/uploads/2012/03/PHP-Simultaneous-GET-and-POST.png)

A mi me parece mejor solucion hacer otro post de forma dinamica, usa la libreria request.php
Fuente: http://www.ammeza.com/2010/05/22/hacer-un-post-en-php/

Código
  1. 1 require_once 'Request.php';
  2. 2 $request = new Request();
  3. 3 $params = array("nombre" => "Pepe", "apellido" => "Mackoy");
  4. 4 $request->setParams($params);
  5. 5 $request->forward("destino.php");
  6.  

lo que yo haria es meter en el primer php (archivo1.php) despues de hacer las consultas MYSQL o lo que tengas que hacer con las variables que llegan, enviar el POST Dinamico de request hacia el segundo php (archivo2.php).

Otra alternativa es que aparte de hacer el POST normal, construyeras otro enlace GET hacia el segundo formulario.

Otra alternativa es que cuando las variables lleguen al primer php, las guardes en variables de session y asi estarian disponibles para ilimitados scripts donde las necesitaras.


Otra alternativa seria que dotaras de javascript a cada campo del formulario, y cuando el campo pierda el foco, el valor se duplique hacia un formulario con todos los campos tipo "hidden" y que cuando se haga submit del primer formulario se active automaticamente el submit del otro formulario hidden.


Otra opcion:
Código
  1. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  2.    switch ($_POST['action']) {
  3.        case 'action1':
  4.             // do something
  5.        break;
  6.        case 'action2':
  7.             // do something
  8.        break;
  9.    }
  10. }
  11.  
  12.  


Otra opcion: http://stackoverflow.com/questions/4354771/php-post-multiple-actions/4356849#4356849



Como ya murio la web que tenia la libreria request, la subo a Mega:
https://mega.co.nz/#!VtY0CIJQ!bUs-PmqMINQSy5_N7ZrSYXxufJNry0czTt9X1d8g5Ws (https://mega.co.nz/#!VtY0CIJQ!bUs-PmqMINQSy5_N7ZrSYXxufJNry0czTt9X1d8g5Ws)

Y dejo otro ejemplo de como se usa la libreria:

Código
  1.   require_once 'Request.php';
  2.        //Se envian los parametros capturados hacia zona pagos.
  3.    $request = new Request();
  4.        $request->addParam("total_con_iva", $_precio_clase);
  5.        $request->addParam("valor_iva", 0);
  6. $request->addParam("Id_pago", $_id_pago); //num max 13 caracteres
  7. $request->addParam("descrip_pago", $_nombre_clase); //concepto del pago que realizara el cliente
  8. $request->addParam("Txtemail", $_email); //email del cliente
  9. $request->addParam("Id_cliente", $_num_doc); //nit o cedula del cliente
  10. $request->addParam("tipo_id_cliente", $_tipo_doc); //nit o cedula del cliente
  11. $request->addParam("nombre_cliente", $_nombres); //max 50
  12. $request->addParam("apellido_cliente", $_apellidos); //max 50
  13. $request->addParam("telefono_cliente", $_telefono); //max 50
  14.        $request->forward("https://zonapagos.com/t_consorcio2/pago.asp?estado_pago=enviar_datos");
  15.  


Título: Re: [Ayuda] Múltiples formularios, método POST
Publicado por: ~ Yoya ~ en 20 Abril 2014, 22:55 pm
Haz un formulario, y cuando el usuario haga click a enviar, ocupas javascript para crear 2 iframe y en cada uno de los iframes insertas vía javascript el formulario que se envié automático apuntando a la web que quiere que se autologuee.

La otra opción, es loguearte directamente desde PHP, pero seria mas complicado, podría tener bugs y es un mal innecesario:
Creando aplicación que se conecte a una web y inicie session (http://yoyahack.blogspot.com/2011/03/creando-aplicacion.html)

Saludos.