[Ayuda] Múltiples formularios, método POST

Iniciado por darg94, 10 Abril 2014, 18:50 PM

0 Miembros y 1 Visitante están viendo este tema.

darg94

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 (php) [Seleccionar]
<form name="' . $args['form_id'] . '" id="' . $args['form_id'] . '" action="' . esc_url( site_url( 'wp-login.php', 'login_post' ) ) . '" method="post">
                       ' . apply_filters( 'login_form_top', '', $args ) . '
                       <p class="login-username">
                               <label for="' . esc_attr( $args['id_username'] ) . '">' . esc_html( $args['label_username'] ) . '</label>
                               <input type="text" name="log" id="' . esc_attr( $args['id_username'] ) . '" class="input" value="' . esc_attr( $args['value_username'] ) . '" size="20" />
                       </p>
                       <p class="login-password">
                               <label for="' . esc_attr( $args['id_password'] ) . '">' . esc_html( $args['label_password'] ) . '</label>
                               <input type="password" name="pwd" id="' . esc_attr( $args['id_password'] ) . '" class="input" value="" size="20" />
                       </p>
                       ' . apply_filters( 'login_form_middle', '', $args ) . '
                       ' . ( $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>' : '' ) . '
                       <p class="login-submit">
                               <input type="submit" name="wp-submit" id="' . esc_attr( $args['id_submit'] ) . '" class="button-primary" value="' . esc_attr( $args['label_log_in'] ) . '" />
                               <input type="hidden" name="redirect_to" value="' . esc_url( $args['redirect'] ) . '" />
                       </p>
                       ' . apply_filters( 'login_form_bottom', '', $args ) . '
               </form>


Muchas Gracias!!!



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

EFEX

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
GITHUB 

Pablo Videla

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/

Graphixx



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 (php) [Seleccionar]

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


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 (php) [Seleccionar]

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    switch ($_POST['action']) {
        case 'action1':
             // do something
        break;
        case 'action2':
             // do something
        break;
    }
}





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

Y dejo otro ejemplo de como se usa la libreria:

Código (php) [Seleccionar]

   require_once 'Request.php';
        //Se envian los parametros capturados hacia zona pagos.
    $request = new Request();
        $request->addParam("total_con_iva", $_precio_clase);
        $request->addParam("valor_iva", 0);
$request->addParam("Id_pago", $_id_pago); //num max 13 caracteres
$request->addParam("descrip_pago", $_nombre_clase); //concepto del pago que realizara el cliente
$request->addParam("Txtemail", $_email); //email del cliente
$request->addParam("Id_cliente", $_num_doc); //nit o cedula del cliente
$request->addParam("tipo_id_cliente", $_tipo_doc); //nit o cedula del cliente
$request->addParam("nombre_cliente", $_nombres); //max 50
$request->addParam("apellido_cliente", $_apellidos); //max 50
$request->addParam("telefono_cliente", $_telefono); //max 50
        $request->forward("https://zonapagos.com/t_consorcio2/pago.asp?estado_pago=enviar_datos");
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

~ Yoya ~

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

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.