Foros del Web » Programando para Internet » PHP »

Sessiones lentas

Estas en el tema de Sessiones lentas en el foro de PHP en Foros del Web. Hola a todos, tengo una duda. Estoy trabajando con seciones, para autentificar a usuarios, segui todos los consejos del faq. Para PHP > 4.1.x y ...
  #1 (permalink)  
Antiguo 30/12/2004, 08:17
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Sessiones lentas

Hola a todos, tengo una duda. Estoy trabajando con seciones, para autentificar a usuarios, segui todos los consejos del faq.

Para PHP > 4.1.x y register_globals a ON o a OFF ... Preferentemente usar este método.
(en el ejemplo se asume que se propaga el SID automático ... ese parametro lo define la directiva de php.ini session.use_trans_sid = 1 (1 activado, 0 desactivado .. propagación manual).) (Cluster),
ademas :
$_SESSION['variable']="valor";
asi las uso.

Creo que esta todo bien pero el problema es que cuando ingreso no entra a la siguiente pagina, es decir se queda "cargando" indefinidamente. Ademas si comento sessiones me carga sin problema.

Adjunco el codigo:

<?php
session_start();
include("conexion.php");
$link=Conectarse();
$query="SELECT codcar, nombre FROM carteros WHERE nombre = '$nombre' AND codcar = '$codigo' ";
$consultar=mysql_query($query,$link);
if (mysql_num_rows($consultar)>0)
{
$_SESSION['id_sesion']=session_id();
$_SESSION['nombre']=mysql_result($consultar,0,"nombre");
$_SESSION['codigo']=mysql_result($consultar,0,"codcar");
$_SESSION['autentificado']="si";
header("Location:usuario.php");
}else{
header("Location:inicio.php?error=si");
exit();
}
?>

ademas cada pagina va comn un include para verificar la autentificacion.:
<?php
session_start()
if ($_SESSION['autentificado']!="si")
{
header("Location:Usuario.php");
exit
}
?>

A ver si alguien me puede dar una manito!
Atte
Maurimono
  #2 (permalink)  
Antiguo 30/12/2004, 08:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usa un espacio detras de tus : en el "location":

Código PHP:
header("Location: pagina.tal"); 
Tal vez sea un error .. pero te faltó un ; detras de session_Start() (donde verificas la autentificación).

Por otro lado .. en tu página autentificada .. haces: cuando autentificas a tu usuario .. lo llevas a usuarios.php .. pero .. si usuarios.php que contiene tu validación no es correcta (no está la variable de sesión) lo vuelves a llevar a usuarios.php ..

Debería ser a inicio.php?error=si ... estas haciendo un "bucle" infinito en ese caso .. Ahora, habría que ver por qué no se crea tu variable de sesión y por qué no puedes tomar su valor en otro script.

El SID se propaga por el URL automáticamente o por cookies .. al usar header() .. PHP no sobreescribe el redireccionamiento (URL) para añadir el SID .. propaga en tu caso mejor el SID en cookies (lo cual requiere un navegador que acepte cookies y nada más como firewall, proxys y demás que las bloqueen): (php.ini) session.use_cookies = ON (o a 1)

Un saludo,

Un saludo,
  #3 (permalink)  
Antiguo 30/12/2004, 09:41
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Sessiones lentas

Todo bien!
funciona bien, segui tus consejos, por una parte le di un espacio al header, en la pagina de verificacion de autentificacion realmente estaba apuntando donde no correspondia. Ademas reconfigure el php.ini con session.use_cookies = ON (1), sin embargo me llamo la atencion lo de la propagacion del sid por coockie, debido al uso de header. Se supone que debemos tratar de no usarlas por el peligro de que un cliente las tenga deshabilitadas. sin embargo tendria que ingeniearmelas para no usarlas. Entonces no hay otra mas que usarlas?
Atte y agradecido de tu pronta y satisfactoria respuesta
Maurimono. (cpsm)
  #4 (permalink)  
Antiguo 30/12/2004, 10:17
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
sessiones lentas:

Amigo.
la solucion para propagar el sid sera concatenar las variables junto a la url?, es decir: Header("location: usuario.php?$nombre.$usuario");
Atte
Maurimono
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 14:31.