No conozco el entorno de ejecución de estas aplicaciones. Si ambas están en el mismo servidor o en diferentes y si tienes acceso a modificar las dos o sólo la principal. Si todo está alojado en el mismo servidor la cosa sería muy sencilla ya que con mantener unas banderas en la base de datos que permitan acceder al interior de la aplicación de la empresa sin pasar por el login en caso de validarse en la aplicación principal.

Si los servidores son diferentes, la idea es simular el submit que se produce cuando pulsas el botón de acceso en la empresa, desde la función de validación de login de la aplicación principal, una vez has validado al usuario. El problema es que el iframe hace la llamada desde el equipo cliente y el php desde el servidor. Para salvar este problema yo montaría una lógica especial en la aplicación de la empresa de forma que una vez recibidos los datos de acceso válidos desde el servidor, se active una bandera que acepte una url desde el iframe que entre directamente sin pasar por el login.

Parece ser que la única forma de hacerlo es utilizando sockets:
He encontrado este ejemplo que simula un envío por post vía sockets. En este caso envía 2 variables:nombre y fono
|
function fsockPost($data) {
foreach($data as $i=>$v) {
$postdata.= $i . \"=\" . urlencode($v) . \"&\";
}
$fp=@fsockopen(\'www.disegnocentell.com.ar\',80,$errnum,$errstr,30);
//Error checking
if(!$fp) { echo $errnum.\": \".$errstr; }
//Post Data
else {
  fputs($fp, \"POST \".\'/portinos/mailer.php\'.\" HTTP/1.1\\r\\n\");
  fputs($fp, \"Host: www.disegnocentell.com.ar\\r\\n\");
  fputs($fp, \"Content-type: application/x-www-form-urlencoded\\r\\n\");
  fputs($fp, \"Content-length: \".strlen($postdata).\"\\r\\n\");
  fputs($fp, \"Connection: close\\r\\n\\r\\n\");
  fputs($fp, $postdata . \"\\r\\n\\r\\n\");
while(!feof($fp)) { $info[]=@fgets($fp, 1024); }
fclose($fp);
$info=implode(\",\",$info);
}
return $info;
}

Esta es la llamada a la función desde php.

$data2=array(\"nombre\"=>\"andres\",\"fono\"=>\"46120828\");
echo fsockPost($data2);

Entiendo que simula una llamada post a ||www.disegnocentell.com.ar/||portinos/mailer.php desde un formulario que tiene los campos "nombre" y "fono".|

Suerte.
Pau.


On 12/08/2011 5:20, Yoel Velasquez Valencia wrote:
Hola, disculpa que no haya respondido antes.

umm pero eso que me comentas se usaria con un iframe?

te cuento que al encontrar la solución que comente se me dibujo una sonrisa en el rostro que mas luego se me quitaria al presentarla al cliente y el cliente tomo su ipad y no funciono

Es el problema de los navegadores internet explorer y safari que por regla tienen politicas de privacidad que solo permiten generar cookies del dominio principal mas no del dominio que se encuentra en el iframe.

en iexplorer lo solucione con una cabecera P3P de la siguiente manera

header('P3P: CP="CAO PSA OUR"');

pero en safari no funciona ni de una ni de otra. por el momento sigo buscandole una solución, esto si que es un quebradero de cabeza.

un abrazo.


El 10 de agosto de 2011 05:08, Pau Dominguez <[email protected] <mailto:[email protected]>> escribió:

    Entiendo que en la aplicación de la empresa hay un formulario de
    login que llama a una función de validación de acceso, pasando el
    usuario y login con un post. Lo que haría yo es simular esa
    llamada desde la aplicación principal. Si utilizas ssl no hay
    problemas de seguridad. Desde luego no lo haría a través de la URL.


    On 09/08/2011 19:54, Yoel Velasquez Valencia wrote:
    Pero eso tendria que hacerlo en la url del iframe, no habria
    problemas de seguridad con es0? :(

    Gracias por responder

    El 9 de agosto de 2011 02:26, Pau Dominguez
    <[email protected] <mailto:[email protected]>> escribió:

        No veo el problema.
        Pasa el login y password  de la aplicación principal a la de
        la empresa en la llamada.



        On 09/08/2011 9:13, Yoel wrote:

            Hola amigos .

            les cuento mi problema.

            me solicitaron desarrollar una aplicacion de ventas que
            comercializaron a varias empresas. y lo hice con cakephp.

            ahora me piden una aplicacion que contenga a todas esas
            aplicaciones. :S

            es decir una aplicacion con un sistema de login con un
            menu que tendra
            un selectBOX para seleccionar la empresa y recargar el
            iframe con la
            url al sistema de esa empresa

            mi problema empieza cuando me piden que si se loguean en
            la aplicacion
            padre, ya no tienen que loguearse en la aplicacion que
            esta dentro del
            iframe..
             pero el sistema instalado en cada una de las empresas
            tiene login.

            la verdad ando algo preocupado porque no se como hacerlo :(

            agradezcode mucho su apoyo.

            un abrazo.


-- Has recibido este mensaje porque estás suscrito al grupo
        "CakePHP-es" de Grupos de Google.
        Para publicar una entrada en este grupo, envía un correo
        electrónico a [email protected]
        <mailto:[email protected]>.
        Para anular tu suscripción a este grupo, envía un correo
        electrónico a [email protected]
        <mailto:cakephp-es%[email protected]>
        Para tener acceso a más opciones, visita el grupo en
        http://groups.google.com/group/cakephp-es?hl=es.




-- Diseñador y Programador web
    Telf.577-6207

-- Has recibido este mensaje porque estás suscrito al grupo
    "CakePHP-es" de Grupos de Google.
    Para publicar una entrada en este grupo, envía un correo
    electrónico a [email protected]
    <mailto:[email protected]>.
    Para anular tu suscripción a este grupo, envía un correo
    electrónico a [email protected]
    <mailto:[email protected]>
    Para tener acceso a más opciones, visita el grupo en
    http://groups.google.com/group/cakephp-es?hl=es.

-- Has recibido este mensaje porque estás suscrito al grupo
    "CakePHP-es" de Grupos de Google.
    Para publicar una entrada en este grupo, envía un correo
    electrónico a [email protected]
    <mailto:[email protected]>.
    Para anular tu suscripción a este grupo, envía un correo
    electrónico a [email protected]
    <mailto:cakephp-es%[email protected]>
    Para tener acceso a más opciones, visita el grupo en
    http://groups.google.com/group/cakephp-es?hl=es.




--
Diseñador y Programador web
Telf.577-6207

--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos de Google. Para publicar una entrada en este grupo, envía un correo electrónico a [email protected]. Para anular tu suscripción a este grupo, envía un correo electrónico a [email protected] Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-es?hl=es.

--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a 
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a 
[email protected]
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a