Ver Mensaje Individual
  #7 (permalink)  
Antiguo 21/07/2006, 06:06
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
el session_start() no deberia ir despues de validar el usuario? Realmente no debemos crearle ninguna sesión si no se ha autentificado antes (corregidme si me ekivoko)
Según el código que presentas (script) .. como sólo lo usas para crear esas variables de sesión si pasó la validación en el login .. como mencionas crear la sesión sólo si pasó dicha validación sería lo más óptimo.

Otro detalle:
¿Registrar el ID de sesión en una variable de sesión?. Dicho valor lo obtienes usando la función session_id() en el script que lo quieras ver siempre y cuando como en todo uso de sesiones las inicies con session_start() (esto ya lo haces y lo observas)

//vble de sesion para comprobar que existe sesión
$_SESSION["id_sesion"] = session_id();

Si te fijas bien .. ese valor del SID (session_name() + session_id .. o accedido por la constante de mismo nombre: SID) siempre es el mismo si vienes de la misma sesión.

Es decir .. a efectos de validación si se hizo login o no .. siempre se dá el caso de que $_SESSION['variable_registrada'] siempre existirá si pasó por el script que la creó y en consecuencia se propagó el SID (el mismo) correctamente.

Código PHP:
sesision_start();
if (empty(
$_SESSION['variable_registrada']){
  die (
"acceso incorrecto");
}

// resto script a ejecutar ... 
Por otro lado tienes la función session_regenerate_id() .. por ejemplo para "forzar" un nuevo ID de sesión que se cree en el "login" para siempre iniciar una nueva sesión, por qué si haces un nuevo login con la sesión activa (por qué llegas a este por un link desde tu aplicación y sesión abierta ..etc) se continuará usando el mismo SID con los datos nuevos que puedas obtener de tu nuevo "login".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.