Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/08/2011, 00:43
yoelkj
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Respuesta: Aplicación que contiene iframe con otra aplicación

Cita:
Iniciado por jotaincubus Ver Mensaje
Pues la cosa no es tan sencilla como te imaginas amigo, ya que las sesiones son almacenadas en el servidor en el que se corre la aplicación así que la sesión de Y no es la misma que la de X.

Pero tal vez podrías hacerlo con una cookie y si el usuario se loguea en Y entonces creas la cookie y que X lea dicha cookie y si el dato almacenado es correcto pues que X cree la sesión para ese usuario a partir de la info de la cokkie.

No se..., es una idea, tendrías que colocarle mucha seguridad por lo de la cookie pero no veo otra forma de hacerlo o estoy muy cansado como para imaginarme otra.
de veras nada sencillo no consigo dar con la solución :(.

mi intente de esta manera.


<?php

//Enviando valores de inicio de session a la aplicación aplicacionhijo.com desde miaplicacionpadre.com

session_start();
$post_vals = array(
'email' => $_SESSION['email'],
'securityData' => md5($_SESSION['email'].date('d/m/Y'))
);

foreach($post_vals as $key => $value) {
$request .= $key.'='.urlencode($value).'&';
}

$request = rtrim($request, '&');

$ch = curl_init('http://'.$_REQUEST['localhost'].':9000/pms/api/loginRemote.php');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch);
curl_close ($ch);

echo $response;
?>

/************************************************/

/*****ESTE ES EL CÓDIGO DE INICIO DE SESSION DE LA APLICACIÓN HIJO

<?php
session_start();
require_once "../config/config.php";
require_once "../dmin/lib/php/usuario.class.php";

//data checkingdata checking
if(isset($_POST['email']) && isset($_POST['securityData'])){
$securityData = md5($_POST['email'].date('d/m/Y'));
//Safety Data checking
if ($_POST['securityData'] == $securityData){
$objectUsuario = new usuario();
$dataUser = $objectUsuario->checkEmail($_POST['email']);
//var_dump($dataUser);
if (!empty($dataUser)){
foreach($dataUser as $field){
$_SESSION['groupUser'] = $field['grupo_id'];
$_SESSION['user'] = $field['user'];
}

//query data recorder
if($_SESSION['groupUser'] == 1 || $_SESSION['groupUser'] == 2){
$redir = "home.php";
}elseif($_SESSION['groupUser'] == 3){
$redir = "camLive.php";
}
$_SESSION['autenticado'] = true;
$aut = "ok";
}else{

$_SESSION['autenticado'] = false;
$aut="error";
$message = "Error, compruebe nuevamente su usuario y contrasenia";
$redir = "index.php";
}
}else{
}
}else{
$message ="Ingresar datos";
}

echo '{ "redir": "' . $redir . '","aut": "' . $aut . '","message": "' . $message . '" }';

?>


//bueno mi idea fue que una vez iniciado session al cargar por el iframe el home de la aplicación hijo ya no me volvería a redireccionar al login :S


<!--HTML APLICACION PADRE-->

<iframe id="framevidium" width="100%" height="600" src="http://IPAPLICACIONHIJO/admin/home.php>

</iframe>

.................................................. .................................................. ..........

Gracias por el apoyo.