Foros del Web » Programando para Internet » PHP »

Detalle curioso en sesiones

Estas en el tema de Detalle curioso en sesiones en el foro de PHP en Foros del Web. Hola a todos. Versión de Php: Resulta que tengo una aplicación con registro de usuarios. Cuando los usuarios entran trato los datos mediante una clase, ...
  #1 (permalink)  
Antiguo 26/05/2006, 04:51
Avatar de g05l21  
Fecha de Ingreso: mayo-2006
Mensajes: 76
Antigüedad: 11 años, 6 meses
Puntos: 1
Detalle curioso en sesiones

Hola a todos.

Versión de Php:

Resulta que tengo una aplicación con registro de usuarios. Cuando los usuarios entran trato los datos mediante una clase, donde meto todos los datos que depués necesite de los usuarios y la voy llevando de un lado a otro por medio de $_SESSION.

Además aprovecho esa $_SESSION para evitar que la gente entre a las páginas internas por medio de un

Código PHP:
require_once ("../cgi/class.usuario.inc.php"); //En principio no creo q sea necesario explicar como va la clase... (Pereza me da poner todo el código, q además está muuu sucio ; )
session_start();

if (empty (
$_SESSION)){    
    
header('Location: http ://'.$_SERVER['HTTP_HOST']); //Tiene el espacio después de http porque no me deja poner enlaces todavía ;)
    
exit;
}else {
... 
Bastante sencillito.

El "require_once" lo pongo antes del "session_start();" para que entienda la clase (lo saqué de este foro precisamente).

En la página principal "http: //'.$_SERVER['HTTP_HOST']" es donde tengo el control de acceso.

Todo funciona perfectamente, siempre y cuando vayas de enlace en enlace.

Es decir, si yo voy directamente por los enlaces de la aplicación todo sigue bien (todos los index.php llevan la misma cabecera, el resto son includes).
Ahora, si pongo directamente la dirección del enlace en cuestión se va a "tomar por saco" la $_SESSION. Pero sólo la primera vez que voy al enlace. Si vuelvo a logarme y vuelvo a poner la dirección del enlace me funciona.

Ejemplo.

Caso 1º -
Escribo url.net -> Me logeo -> voy mediante los enlaces de la página a url.net/carpeta -> todo funciona correctamente.

Caso 2º -
Escribo url.net -> Me logeo -> escribo url.net/carpeta -> A tomar por saco la sesión y de vuelta a url.net -> Me logeo de nuevo -> escribo url.net/carpeta -> todo funciona correctamente.

Supongo que tiene que ver con los require_once o con las variables de session (algo relacionado con subcarpetas¿¿?? No me suena nada)

La cuestión es que no se de donde viene el problemilla. Y pasa en FF y en IE (los únicos en los q lo he probado)

Alguien me puede explicar el porque¿¿??

A parte de eso. Se que Cluster tiene un buen programa para logearse, pero a este le véis algun problema "grave" de seguridad¿¿?? Alguna sugerencia importante que hacerle¿¿??

Thx to all.
  #2 (permalink)  
Antiguo 26/05/2006, 15:37
 
Fecha de Ingreso: julio-2002
Ubicación: Capital Federal
Mensajes: 66
Antigüedad: 15 años, 5 meses
Puntos: 0
No entiendo que es "se va a tomar por saco". Pero si te sirve de algo:
Si cerrás la ventana, se destruye la session, por lo tanto tenés que volver a loguearte.
Para que dure más, usá las cookies.
__________________
Adrián (@ RHCP I Wanna Be Funky Flea)
  #3 (permalink)  
Antiguo 27/05/2006, 13:03
Avatar de g05l21  
Fecha de Ingreso: mayo-2006
Mensajes: 76
Antigüedad: 11 años, 6 meses
Puntos: 1
Jeje, perdón, intentaré ser más explicito ;)
Con "se va a tomar por saco" me refería a la variable $_SESSION, que se queda "empty". Vamos que me quedo sin sesión.

Lo de las cookies ya lo sabía, pero lo que necesito es que esté logeado y que si cierra el navegador como poco, se quede sin sesión.

Gracias de todos modos
  #4 (permalink)  
Antiguo 30/05/2006, 02:07
Avatar de g05l21  
Fecha de Ingreso: mayo-2006
Mensajes: 76
Antigüedad: 11 años, 6 meses
Puntos: 1
Bueno, acabo de comprobar que posiblemente el problema venga de como está instalado aquí el servidor (WAMP, por desgracia el equipo de desarrollo está bajo Window$, menos mal que el de producción está en GNU/Linux).

El problema es que se debe hacer un pequeño lio con las urls. Ya que el problema me lo da cuando pongo la url de mi equipo (http://alquesada/loqsea).
Sin embargo si pongo http://127.0.0.1/loqsea no da ese problema.
Tendré que mirarlo en el servidor de producción, pero en un principio creo (espero) que sea un problema de resolución de direcciones en mi equipo.
__________________
.-. GeL/T0 .-. Quieres saber mas de mi? lee mi blog: http://g05l21.net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:43.