PDA

Ver la Versión Completa : Problemas al abrir una sesion dentro de un frame


manitoba
25-08-2004, 11:04:26
Mi problema es el siguiente, tengo una pagina en la que por distintos motivos utilizo variable de sesion, por lo que cada vez que abro la pagina principal abro la sesion

session_start();
$_SESSION[llave] ="llave";

y en cada pagina del sitio web compruebo si la sesion esta trabajando y si no es asi salga un mensaje de error

session_start();
if (!$_SESSION[llave]){
print("<p><font face='Verdana' size='1'>Acceso prohibido ;)</font></p>");
exit ();
}

Todo esto funciona perfectamente, probado y comprobado.

El problema me surge por que a esta pagina se le llama desde distintos dominios que estan ubicados en otros servidores, y para que en la barra de dirección no cambie el nombre del dominio cada domino lo que hace es llamr a la pagina dentro de un frame, con el siguiente codigo:

<html>
<head>
<TITLE> Titulo de la pagina</TITLE>
<SCRIPT Language='JavaScript'>
var count = 0;
var text = " www.dominio.com (http://www.dominio.com/)";
scroll();
function scroll () {
window.status = text.substring (count, text.length) + text.substring (0, count)
if (count < text.length)
count ++;
else
count = 0;
setTimeout ("scroll()", 100);
}
</script>
</head>
<frameset rows="*,*">
<frame name="main" src="http://www.iehosting.net/sites/codigofuente/html/inicio.asp?id=1499 (http://www.iehosting.net/sites/codigofuente/html/inicio.asp?id=1499)" scrolling="auto">
<noframes>
<body>
<p>patatin patatan.</p><br>
<p>Pulsa <a href="<A href="http://www.iehosting.net/sites/nuevonegocio/html/inicio.asp?id=1499">aqui</a">http://www.iehosting.net/sites/codigofuente/html/inicio.asp?id=1499">aqui</a> para entrar a la página<./p>
</body>
</noframes>
<frame src="UntitledFrame-2"></frameset>
</html>

Pues el problema es cuando accedo a la pagina atraves del dominio, no se abre la sesion.

¿Cual es la causa?
¿Como puedo solucionarlo para que pueda acceder desde el dominio y la session sin cabiar la direccion URL por la del codigo fuente? Recuerdo que el motivo de utilizar el frame es para conservar la URL del Dominio mientras visito la pagina ya que si no utilizo frames me funciona todo perfectamente pero me cambia la direccion.

Gracias de antemano por vuestra ayuda

kayetano
25-08-2004, 13:08:31
Hola

Nunca se me habia dado el caso, pero acabo de hacer una prueba.

<html>
</head>
</head>
<frameset rows="*">
<frame name="main" src="http://www.miweb.com" scrolling="auto">
</frameset>
</html>

Esta pagina le he puesto en otro dominio, lo que hay en www.miweb.com trabaja con una sesión y funciona correctamente, no he encontrado ninguna diferencia en el funcionamiento de la sessión trabajando desde el frame como desde la dirección directa.

Explica un poco mejor que es lo que quieres hacer y como lo estas haciendo por que ya te digo que esta prueba me ha salido bien.

manitoba
25-08-2004, 14:21:56
En el caso que he expuesto, tengo el dominio con su pagina de redireccion en un servidor diferente a donde esta el codigo fuente de la pagina a la que redirecciona.

En las pruebas que he hecho yo, al hacerlop a traves del frame no se me habre la sesion, pero al simplemente pulsar f5 para actualizar se me abre la sesion.

He probado desde distintos ordenadores y he hecho que lo prueben distintos amigos y a algunoa se les abre sin problemas y a otros que no se les abre la sesión teniendo distintos navegadores, SO ect....

El no tener un criterio fijo y no dar el fallo a todos, el simple hecho de actualizar y que funcione,ect... es lo que mas quebraderos de cabeza me da, ya que no tengo ni la mas remota idea de cual puede ser la causa.

Agradezco mucho vuestra ayuda

marto
25-08-2004, 14:41:55
Wop!

No sé si los tiros irán por ahí, entre otras cosas porque no trabajo con PHP. No obstante, cuando he tenido problemas de actualización que se solucionaban con un refresco los he solucionado forzando esa actualización. En el caso de frames, prueba a, en el src meterle al final una prametro de nombre indiferente y que coja el valor del timestamp del servidor, eso forzará al navegador a no tirar de caché ;)

kayetano
25-08-2004, 14:57:39
Hola

¿Podrías inicarme donde esta esa web en internet para poder ver que narices pasa?

Si por lo que dices con unos navegadores te funciona y con otros no el problema esta claro, EL NAVEGADOR, ya que PHP se interpreta en el servidor.

Por lo que estas contando parece ser que algun que otro navegador no puede gestionar las cookies de las sesiones de diferentes dominios en el mismo navegador. Supongo que el navegador buscará la cookie del dominio en el que se supone que trabaja y por supuesto no la encuentra.

Lo dicho si puedes indicarme la dirección de esta web igual puedo contarte algo más.

manitoba
26-08-2004, 10:28:12
Kayetano, antes que nada debo agradecerte el interes con el que intentas ayudarme.

Al no funcionarme bien no lo tengo los dominios rederigidos, pero he creado unos ficheros para que veas lo que me pasa exactamente igual que el fichero de redireccion que tiene que haber en el dominio:

Primer Ejemplo con Frame:

Aqui la sesion no se abre, ya que en la cabecera debe aparecer el nombre de la pagina (nuevo negocio) y no aparece y si ademas se pulsa a un boton del menu aparece aceeso no permitido. ejemplos de errores que se producen cuando no se abre la sesion. En cambio puedes probar que si se actualiza la sesion se abre sin problemas ??????

http://www.iehosting.net/sites/nuevonegocio/prueba/conframe.htm


Segundo Ejemplo sin frames

Fichero exactamente igual que el anterior pero con la unica diferencia que al redirigir la pagina utilizo "top" para quitar toda la extructura de frames, funciona perfectamente pero el problema que me cambia la direccion URL y yo quiero que conserve la del dominio desde el que se le llama

http://www.iehosting.net/sites/nuevonegocio/prueba/sinframe.htm

No encuentro cual es la razon por la que no funciona el primer ejemplo!!!!!

marto
26-08-2004, 10:34:59
Wop!

He probado el primer link y funciona perfectamente... a mi me sigue pareciendo que es un problema de caché....

kayetano
26-08-2004, 12:13:09
Hola

probado con
- Explorer 6
Con este navegador ( y como es lógico ) hace cosas raras, cuando entras por primera vez da error, pero haces back, y vuelves a entrar y funciona correctamente.
- Netscape - OK
- Opera - OK
- Firefox - OK

PD. Veo que en tu perfil no pones mucha información sobre ti, pero por la web que pones me surge una duda ¿eres de Elche? ya que yo si y me resulta chocante ayudar a gente que tengo a unos cientos de metros via internet.

manitoba
26-08-2004, 12:21:54
Si kayetano vivo en Elche hace un año. Asi que te podre invitar a una cerveza para agradecerte tus molestias.


Como te comente antes a ciertos usuarios les funciona y a otros no, por esa razon tengo que buscar una solucion para que le funcione a todo el mundo utilizando el frame.

Se os ocurre alguna?

kayetano
26-08-2004, 12:48:58
Hola

He hecho alguna que otra prueba, y la verdad es que no le veo ni pies ni cabeza, unas veces lo hace bien y otras no, esto es cosa de utilizar el sistema de prueba y fallo.

Te propongo una prueba:
Ya que me da la sensación que es problema con las cookies puedes hacer lo siguiente, crear una pagina intermedia que abra la sesion y redirija a tu web

<?
session_start();
header( "Location: http://www.iehosting.net/sites/nuevonegocio/prueba/sinframe.htm" );
exit();
?>


o incluso

<?
session_start();
sleep(2); // Espera de 2 segundos, hay que tomarse las cosas con calma :)
header( "Location: http://www.iehosting.net/sites/nuevonegocio/prueba/sinframe.htm" );
exit();
?>


Ya que los problemas que he visto es que parece no cojer la cookie de la sesion a la primera puedes probar el camino de la recarga o como en este caso de la redirección.

manitoba
26-08-2004, 14:01:07
He probado de las dos formas sin exito........


Me he dado cuenta que en el informe de privacidad de Internet Explorer sale un mensaje donde indican que las cookies de la pagina de inicio estan bloqueadas y en el caso de la prueba con los ejemplos que me ha indicado kayetano, bloquea las cookies tanto de la pagina que redirecciona con las de la pagina de inicio.

?????????????????????????????????????????????????

Alguna otra idea????

A mi me tiene esto completamente bloqueado!!!!

kayetano
26-08-2004, 14:36:03
hola

Recuerdo que en una ocasión, en un empresa donde trabajaba, tubimos un problema similar y se solucionaba mandando unas cabeceras al explorer, en mi caso era un IFRAME pero supongo que sera lo mismo.

Espero que no corra prisa, puesto que tengo que buscar en las copias de seguridad de varios años la web en custion y lo mas importante recordar en que web se hico.

kayetano
26-08-2004, 16:36:56
Hola

pues me parece que tu problema es este
http://support.microsoft.com/default.aspx?scid=kb;EN-US;323752

y se supone que se soluciona mandando esta cabecera

<?
header('P3P: CP="CAO DSP AND SO ON"');
...
?>

tabien he visto

<?
header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"');
...
?>


o en html

<meta http-equiv="P3P" content='CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"'>

La verdad no me he parado a mirar en que se diferencia una de la otra, ahora te toca currar a ti, puedes mirar tambien en :
http://www.w3.org/P3P/
http://www.security-forums.com/forum/viewtopic.php?p=6085
http://www.sitepoint.com/article/p3p-cookies-ie6/2

Puedes encontrar mucha informacion en cualquier buscador buscando por "p3p"

Espero que sea esto.

manitoba
06-09-2004, 12:02:24
Problema solucionado

Disculpar que no haya agadecido antes vuestra ayuda, pero me he tenido unos dias de vacaciones lejos de los ordenadores

Kayetano, muchas gracias por todo, espero poder agradecertelo personalmente.

un abrazo