Foros del Web » Programando para Internet » PHP »

Problema con sesiones...

Estas en el tema de Problema con sesiones... en el foro de PHP en Foros del Web. Estimaods: Tengo el siguiente problema, Bueno estoy usando sesiones pero no las puedo controlar como quisiera entonces quisiera saber si alguien me ayuda con algunas ...
  #1 (permalink)  
Antiguo 15/05/2006, 18:28
Avatar de richard20  
Fecha de Ingreso: marzo-2006
Mensajes: 139
Antigüedad: 18 años, 1 mes
Puntos: 0
Problema con sesiones...

Estimaods:

Tengo el siguiente problema,

Bueno estoy usando sesiones pero no las puedo controlar como quisiera entonces quisiera saber si alguien me ayuda con algunas configuraciones...

necesito que al presionar el boton atras no me diga que la pagina ha caducado... para esto utilizo session_cache_limiter('private');
pero tengo un problema...

estoy en:

index.php?pag=inicio(no me he registrado),

luego paso a:

?pag=carro(aqui me registro),

me redirecciona a:

index.php?pag=inicio(estoy registrado)

y entro a:

?pag=producto(estoy registrado)

...Si hago atras varias veces hasta volver a

?pag=carro(sigo registrado)

me muestra como no logueado siendo que ya estoy logueado...

Se entiende la pregunta????, necesito algo asi, como que al loguearme y al desloguearme el cache comienze de 0, como lo puedo hacer???, mil disculpas espero hayan entendido mi problema , gracias.
  #2 (permalink)  
Antiguo 16/05/2006, 06:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
A simple vista .. sin ver el código que usas completo y más detallado el procedimiento donde falla .. "parece" que no propagas bien el SID o en algún paso lo pierdes.

Podría ser que propagues el SID en el URL (session.use_trans_sid a ON) pero en algún punto redirecciones con javascript o con un header() de tipo "Location" .. En esos casos no se añade automáticamente el SID (lo tienes que hacer tu a mano) ...

Por eso te digo que es necesario ver el código completo que usas (para ver que tipo de redireccionamientos haces) y que confirmes como propagas el SID en tu configuración de PHP: lo haces por cookies? .. por el URL? (dejas a PHP que lo haga por tí? .. propagas el SID manualmenete en el URL en algún sitio? .. No sabes de que hablo cuando menciono el SID?: www.php.net/session)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 16/05/2006, 09:02
Avatar de richard20  
Fecha de Ingreso: marzo-2006
Mensajes: 139
Antigüedad: 18 años, 1 mes
Puntos: 0
De acuerdo Ahi estan los codigos de acceso y de salida...

Bueno estoy ocupando sessiones y se supone las estoy propagando por cookies en el index.php tengo al principio
session_start();

el codigo de ingreso es este (las variables oc, detalle y linea, son para guardar datos ya que manejo un carro de compras. acceso_sistema es con el cual controlo si esta logueado.).

Este archivo esta en un carpeta de nombre lib/ingreso.php
Código PHP:
$rs=mysql_query("Select usuarios.Id_Usuario, usuarios.Nombre_Usuario From usuarios Where usuarios.User='$usuario' and usuarios.Pass='$contrasena'") or die ("Error al hacer la consulta");
if (
mysql_num_rows($rs)==1)
    {
    
$res=mysql_fetch_array($rs)
        {
            @
session_register("acceso_sistema"); 
            @
session_register("id_usuario");
                                      @
session_register("usuario");
            @
session_register('oc');
            @
session_register('detalle');
            @
session_register('linea');
            
$_SESSION['acceso_sistema']=md5("ok");
            
$_SESSION['id_usuario']=$res['Id_Usuario'];
            
$_SESSION['usuario']=$res['Nombre_Usuario'];
            
mysql_close();
            @
header ("Location: ../index.php");
        }
    }
else 
    {
        
mysql_close();
        @
header ("Location: ../index.php");
    } 
el codigo para desloguearse es este y esta en una carpeta de nombre
lib/logout.php:

Código PHP:
             session_start();
    unset(
$_SESSION['acceso_sistema']); 
    unset(
$_SESSION['id_usuario']);
             unset(
$_SESSION['usuario']); 
    unset(
$_SESSION['oc']); 
    unset(
$_SESSION['detalle']); 
    unset(
$_SESSION['linea']); 
    
session_unset(); 
    
session_destroy();
    @
header("Location: ../index.php"); 
Desde ya muchas gracias.
  #4 (permalink)  
Antiguo 16/05/2006, 09:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Esto no es correcto:

@session_register("acceso_sistema");
@session_register("id_usuario");
@session_register("usuario");
@session_register('oc');
@session_register('detalle');
@session_register('linea');
$_SESSION['acceso_sistema']=md5("ok");
$_SESSION['id_usuario']=$res['Id_Usuario'];
$_SESSION['usuario']=$res['Nombre_Usuario'];

Debes usar -sólo- los arrays superglobales $_SESSION .. NO uses session_register(). Es redundante usar ambos métodos ademas que el uso de session_register() ya no es recomendable usarlo (existiendo $_SESSION).

Y por lo demás .. quita ya que estás en "desarrollo" los @ del código (funciones) que inhiben todo posible mensaje de error que se pueda estar originando y así de esa forma "no ves".

Cita:
Bueno estoy ocupando sessiones y se supone las estoy propagando por cookies
Esto no se debe "suponer" .. hay que corroborarlo y -saber- como estás propagando el SID.

Revisa tu php.ini (o phpinfo()) y mira el estado de:
session.use_trans_sid
session.use_cookies
(y opcionalmente session.use_only_cookies)

Si dices "propagar el SID en cookies" .. la primera directiva debe estar a OFF .. la seguna a ON y la última opcionalmente a ON también.

Así propagaras el SID si o si en COOKIES. Si la propagación del SID en cookies no te funciona recuerda que las cookies depende de la configuración del "cliente" (del navegador) que uses de pruebas .. que acepte las cookies, cuidado con el nivel de seguridad del navegado que involucra que cookies acepta ese navegador, .. el uso de ciertos proxys, firewalls, antivirus (con esas funcionalidades) también bloquean cookies sin más avisos .. revisalo.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 16/05/2006, 09:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Otro detalle:

$_SESSION['acceso_sistema']=md5("ok");

Para que usas eso? con qué fin?

Validando a tu "ID" de usuario y conociendo que las sesioens son únicas para el cliente que las crea .. ese tipo de "datos" está de más en la mayoría de casos (por no decir todos) .. De hecho aplicas una función que -siempre- dá el mismo valor para el mismo dato (el MD5() resultante de esa misma cadena "ok" .. es simpre el mismo: ¿para qué siempre haces esa operación? .. usa en su defecto el dato directamente resultante .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 16/05/2006, 09:59
Avatar de richard20  
Fecha de Ingreso: marzo-2006
Mensajes: 139
Antigüedad: 18 años, 1 mes
Puntos: 0
Muchas Gracias Cluster

Muy buena explicacion era lo que necesitaba, y bueno si comprendo que hay muchas lineas y operaciones que estan de más...
Me encargaré de depurar el codigo de acuerdo a lo que me haz indicado, muchas gracias por el tiempo dedicado...

Saludos,
  #7 (permalink)  
Antiguo 16/05/2006, 17:17
Avatar de MichaellR  
Fecha de Ingreso: noviembre-2004
Ubicación: Lima - Peru
Mensajes: 85
Antigüedad: 19 años, 5 meses
Puntos: 0
Chicos tengo un problema con mi configuracion de mi php siempre lo he trabajado normal con sesiones y ahora cuando quiero entrar directamente por una autentificacion no lo hace no aparece nada y se queda cargando eternamente me podrian ayudar con esto por favor??
  #8 (permalink)  
Antiguo 17/05/2006, 06:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por MichaellR
Chicos tengo un problema con mi configuracion de mi php siempre lo he trabajado normal con sesiones y ahora cuando quiero entrar directamente por una autentificacion no lo hace no aparece nada y se queda cargando eternamente me podrian ayudar con esto por favor??
Haz tu pregunta en un tema nuevo y adjunta detalles de tus condiciones de pruebas:

Código PHP que usas .. configuración de sesiones (sección sesiones de php.ini) .. versión de PHP .. sistema operativo de tu servidor y nombre/versión de tu servidor HTTP .. EN fin .. cuantos más datos aportes sobre tu problema se podrá ver mejor el problema .. TU achacas tu problema a "sesiones" tal vez no esté por ahí el problema .. pero como no das -ninguna- información al respecto, como veras es complicado dar alguna respuesta coherente.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 07:07.