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.