Foros del Web » Programando para Internet » PHP »

Error, perdida de sesion

Estas en el tema de Error, perdida de sesion en el foro de PHP en Foros del Web. Hola, estoy realizando mi proyecto de carrea, que es un portal, y debo utilizar sesiones. No me había dado cuenta, pero cuando me autentico, salen ...
  #1 (permalink)  
Antiguo 31/10/2008, 06:22
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
Error, perdida de sesion

Hola,
estoy realizando mi proyecto de carrea, que es un portal, y debo utilizar sesiones.
No me había dado cuenta, pero cuando me autentico, salen mis datos bien, pero cuando cambio de página se pierden los datos de la sesión y donde aparecia "bienvenid@ pepe" ahora aparece "bienvenid@ 0" Sólo aparece bien en el primera página tras autenticarme, en cuanto cliko otra...desaparecen los valores apra siempre.

En config.php tengo:

Código PHP:
session_start(); 
y un ejemplo de una página.php de mi portal es:

Código PHP:
<?php
include("config.php");

if(!isset(
$_SESSION[usuario]) ) //comprobamos que no existe la session, es decir, que no se ha logeado, y mostramos el form
{
    
$smarty->assign('bienvenida''Est&aacute;s como visitante');
    
$smarty->assign('estilo''estilos/unregister.css');
    
$smarty->assign('sidebar''sidebar.tpl');
    
$smarty->assign('login''login.tpl');    
    
$smarty->assign('footer''footer.html');    


}
else {
    
$smarty->assign('bienvenida'$_SESSION[usuario]);
    if (
$_SESSION['tipo'] == "usuario"){
        
$smarty->assign('estilo''estilos/registrado.css');
        
$smarty->assign('sidebar''menu_usuario.tpl');
        
$smarty->assign('login''logout.tpl');        
        
$smarty->assign('footer''footer_usuario.html');                

    }
    if (
$_SESSION['tipo'] == "empresa"){
        
$smarty->assign('estilo''estilos/empresa.css');
        
$smarty->assign('sidebar''menu_empresa.tpl');
        
$smarty->assign('login''logout.tpl');        
        
$smarty->assign('footer''footer_empresa.html');                            
    }
        

}
    
$smarty->assign('content''ganadores.tpl');    
    
$smarty->assign('title''Ganadores mensuales');    

    
// falta asignarles valor
    
$smarty->assign('usu_nombre''Nombre de usuario');    
    
$smarty->assign('usu_login''valor de la etiqueta');    
    
$smarty->assign('num_ganador''5');    
    
$smarty->display('index.tpl');
?>
¿Cómo hago para que peuda ir navegando por todas las páginas sin perder los valores de la sesion (el nombre de usuario, el tipo....etc)?
Gracias
  #2 (permalink)  
Antiguo 31/10/2008, 06:54
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: Error, perdida de sesion

Hola scout_vlc,

Hasta donde yo sé para poder utilizar variables de sesión como bien dices tienes que poner session_start() en cada una de las páginas donde quieras usarlas. En el código que has puesto veo que lo tienes en el config.php y éste lo incluyes en tu página por lo que no deberia darte problemas.
También veo que utlizas $_SESSION[usuario] en lugar de $_SESSION["usuario"] con el nombre de la variable sin comillas. Igual es ese el problema, prueba a ponerlas.

Saludos.
__________________
Perdida en el mundo del conocimiento
  #3 (permalink)  
Antiguo 31/10/2008, 06:54
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: Error, perdida de sesion

No hagas caso a este post, es el de antes pero sin terminar se me ha colao y le he dado a enviar sin querer jeje

Hola scout_vlc,

Hasta donde yo sé para poder utilizar variables de sesión sólo tienes que poner session_start(); en cada una de las páginas donde quieras usarlas. En el código que has puesto veo que lo tienes en el config.php y éste lo incluyes en tu página por lo que no deberia darte problemas. También veo que utlizas
__________________
Perdida en el mundo del conocimiento
  #4 (permalink)  
Antiguo 31/10/2008, 07:01
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Error, perdida de sesion

He probado con las comillas:


Código PHP:
if(!isset($_SESSION['usuario']) ) //comprobamos que no existe la session, es decir, que no se ha logeado, y mostramos el form
{
    
$smarty->assign('bienvenida''Est&aacute;s como visitante');
    
$smarty->assign('estilo''estilos/unregister.css');
....... 
y nada...me ocurre lo mismo,... cliko a una página y pierdo los datos de la sesión :(
  #5 (permalink)  
Antiguo 31/10/2008, 07:07
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: Error, perdida de sesion

Has probado a llamar directamente al session_start() en cada página a ver que te hace?

También podrías confirmar si efectivamente en la página inicial te está guardando la variable de sesión.
A lo mejor podría ser cosa de configuración del php, mira que valor tiene register_globals, aunque si en la primera página funciona no creo que sea tema de configuración.

Saludos,
__________________
Perdida en el mundo del conocimiento
  #6 (permalink)  
Antiguo 10/11/2008, 21:32
 
Fecha de Ingreso: septiembre-2008
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error, perdida de sesion

Debe poner el session_start() en el inicio de todas las paginas, no importa que la invoque en el config..
tiene q invocarla en ese php para que funcione.
Asi q "siempre"!! debe poner el session_start o si no no funciona =)..
  #7 (permalink)  
Antiguo 11/11/2008, 03:32
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Error, perdida de sesion

Hola, ya está solucionado..bueno, la verdad es que en el hosting de la Universidad, sin tocar nada sí funciona bien....no sé porque en el hosting que tengo yo contratado en una empresa no funciona.....pero mientras funcione en la Universidad que es donde tengo que presentarlo...jeje
gracias a todo@s!
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 19:39.