Foros del Web » Programando para Internet » PHP »

Sesiones

Estas en el tema de Sesiones en el foro de PHP en Foros del Web. Buinas!!!! Ayuda, tengo un php que hace el login, en donde si se loguea crea una sesion llamada "GG" de esta manera. Código PHP: $usuarios_sesion ...
  #1 (permalink)  
Antiguo 18/04/2005, 03:41
Avatar de gaitagarcia  
Fecha de Ingreso: julio-2002
Mensajes: 79
Antigüedad: 15 años, 5 meses
Puntos: 0
Exclamación Sesiones

Buinas!!!!
Ayuda, tengo un php que hace el login, en donde si se loguea crea una sesion llamada "GG" de esta manera.

Código PHP:
$usuarios_sesion="GG";
session_name($usuarios_sesion);
session_start();
session_cache_limiter('nocache,private');
$_SESSION['usuario_id']=$row["id"];
$_SESSION['usuario_nick']=$row["nick"];
$_SESSION['usuario_password']=$row["password"]; 
, despues paso a otra pagina en donde pregunto si existe la sesion "GG" que redireccione a donde corresponda de esta forma.

Código PHP:
<?PHP
$usuarios_sesion
="GG";
session_name($usuarios_sesion);session_start();
echo 
session_name();

if(isset(
$_SESSION[$usuarios_sesion]))
{
echo 
"si";include ("user01.php");
 } else {
echo 
"no";include ("user02.php");
 }
?>
lo raro es que el echo session_name(); me dice que es GG pero el isset siempre me dice que "no", y no va a user01.php.
Como puedo arreglar esto?
es como que no sabe cual es la session creada por que si pongo
Código PHP:
<?PHP
    
if($_SESSION['usuario_nick']!="")
{
include (
"user01.php");
 } else {
include (
"user02.php");
 }
?>
me redirecciona bien.

Gracias!
  #2 (permalink)  
Antiguo 18/04/2005, 09:43
 
Fecha de Ingreso: abril-2005
Ubicación: Montevideo, Uruguay
Mensajes: 102
Antigüedad: 12 años, 8 meses
Puntos: 0
Es que lo que estás preguntando ahí es si existe en la sesión una variable llamada "GG", una vez que hiciste session_start() la sesión "GG" existe, lo que pueden no existir son los valores que le cargaste en el script anterior. Así que lo que podrías preguntar, por ejemplo, es si

Código PHP:
if(isset($_SESSION['usuario_nick'])) 
para verificar que haya alguien logeado.

Saludos!
__________________
Mauricio Etcheverry

WebMaster de YoReparo.com
  #3 (permalink)  
Antiguo 18/04/2005, 09:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El orden correcto de estas directivas:
$usuarios_sesion="GG";
session_name($usuarios_sesion);
session_start();
session_cache_limiter('nocache,private');

es:
Código PHP:
$usuarios_sesion="GG"

session_name($usuarios_sesion); 
session_cache_limiter('nocache,private'); 
session_start(); 
Así debes usarlo tanto en los scripts que definas variables de sesión .. como en los que pretendas accederlas (leer su valor).


Lo otro que comentas es completamente normal .. El nombre de la sesión NO ES una variable más en el array $_SESSION ..

Si estás validando . debes basarte en alguna de tus variables de sesión:

Código PHP:
<?
$usuarios_sesion
="GG"

session_name($usuarios_sesion); 
session_cache_limiter('nocache,private'); 
session_start(); 

if(!empty(
$_SESSION['usuario_nick'])){
   echo 
"Sesion OK";
} else {
    echo 
"Session NO existe";
}
?>
Si quieres validar el "nombre" que le diste de tu sesión .. usa la función session_name() .. pero realmente esto no veo mucha utilidad. Lo normal es crear una -sola- sesión y dentro de ella todas las variables que gustes .. si deseas hacer "agrupamientos" de variables en tu sesión .. puedes usar perfectamente arrays (arreglos, matrices ..). Recuerda que la sesión es única para el cliente que la crea .. No puedes trabajar con varias sesiones (nombres diferentes) simultáneamente en un mismo script.

Un saludo,
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 18:50.