Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/10/2005, 05:28
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si tu defines un nombre de sesión .. debes usarlo siempre en todo uso de sesiones que hagas en tu aplicación:

session_name ($user);
session_start();

Si eso lo haces ahí .. también tienes que hacerlo en otros inicio de uso de sesiones que uses .. es decir .. el mismo valor de $user .. antes de session_start() para la función session_name().

Sino, vas a trabajar con dos sesiones diferentes .. una (cuando fuerces el nombre de tu sesión por session_name()) con el nombre por defecto que PHP le dá a las sesiones (que lo define php.ini en su session.nomeacuerdo directiva) y otra con el nombre que le distes al usar session_name()

Lo único que veo es que estás confundiendo lo que significa usar un nombre de sesión (o definirlo) .. Las sesiones son únicas para el cliente que las crea, para eso tienes el SID (Identificador único de sesión) que las hace únicas y las relaciona con el cliente que las crea.

Definir un nombre de sesión en base a un dato de los que pueda propagar como ese "$user" .. la verdad no le veo mucho sentido .. y más cuando ya propagas esa variable en la sesión ($_SESSION['username']=$user;).

Recomendación .. no uses session_name() por lo menos de esa forma. Si quieres, usa un nombre de sesión "personalizado" para todo lo que haga tu aplicación (nombre fijo) .. pero insisto que no es para nada necesario ni tampoco ofrece ninguna utilidad práctica (o la desconozco) salvo esa personalización.

Por otro lado .. si tu haces una validación tipo:

if(!empty($_SESSION['username'])){

sin haber usado session_start() -antes- de pretender acceder a $_SESSIOn . .SIEMPRE te va a devolver "null" (vacio) .. debes usar session_start() si o si para realmente ver si esa "variable" en tu sesión está definida y con algún valor ..

No te preocupes por el SID si tiene el mismo IDentificador antes de tu autentificación o cuando pase tu validación de tu usuario .. Lo que "Manda" es la validación de la existencia de esa variable que ahí defines "$_SESSION['username']", por qué tu la creas sólo cuando pasas tu validación (por tu consulta a tu servidor LDAP y autentificación de tu usuario). Cuando no pasa dicha validación .. NO la creas por enden no existe.

Un saludo,