Foros del Web » Programando para Internet » PHP »

Sesiones: ¿Es esto correcto?

Estas en el tema de Sesiones: ¿Es esto correcto? en el foro de PHP en Foros del Web. Hola a todos He estado observando el script validator que hay posteado por ahi, y he intentando adaptarlo a mis necesidades, pero sin resultado alguno, ...
  #1 (permalink)  
Antiguo 04/03/2005, 08:59
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 22 años, 8 meses
Puntos: 0
Sesiones: ¿Es esto correcto?

Hola a todos

He estado observando el script validator que hay posteado por ahi, y he intentando adaptarlo a mis necesidades, pero sin resultado alguno, debo de estar haciendo algo mal, les pongo el codigo a ver si pueden echarme una manilla... gracias de antemano..

Primero la parte del codigo que valida al usuario...
Código PHP:
...
    
// En este punto, el usuario ya esta validado.
    // Grabamos los datos del usuario en una sesion.
    
     // le damos un mobre a la sesion.
    
session_name($usuarios_sesion);
     
// incia sessiones
    
session_start();
    
    
// Asignamos variables de sesión con datos del Usuario para el uso en el
    // resto de páginas autentificadas.    
    
$_SESSION['usuario_login']=$usuario_datos['username'];

    
Header ("Location: userpanel.php");
    exit; 
El codigo en userpanel.php seria:
Código PHP:
<?
// usamos la sesion de nombre definido.
session_name($usuarios_sesion);
// Iniciamos el uso de sesiones
session_start();

if(!isset(
$_SESSION['usuario_login']))
{
    
session_destroy();
    
header("location:acceso.php");
}
    else 
{
    echo 
"<html><body>";
    echo 
"Bienvenido ";
    echo 
$_SESSION['usuario_login'];
    echo 
"<br>Has entrado con el nombre de usuario ";
    echo 
$_SESSION['usuario_login'];
    echo 
"<br>Para cerrar la sesión, pulsa: <a href='logout.php'>logout</a>";
    echo 
"</body></html>";
}
?>
Cuando introduzco el nombre de usuario y la clave (correctas) me redirige a la pagina acceso.php, por lo que entiendo que la sesion no se ha creado.

En algun lado estare metiendo la pata fijo....

Gracias

Última edición por daniph; 04/03/2005 a las 09:02
  #2 (permalink)  
Antiguo 04/03/2005, 09:49
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Usa una variable que valide la sesión, usando el nombre de usuario que tienes como sesión en la base de datos. O bien, usa un valor TRUE. Ya que $_SESSION['usuario_login'] tiene un valor predefinido.
  #3 (permalink)  
Antiguo 04/03/2005, 09:53
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 22 años, 8 meses
Puntos: 0
Gracias por tu respuesta...

He estado echando un ojo al manual de sessiones de www.php.net y he visto que tenia register_globals en On por lo que he cambiado session_name($usuarios_sesion); por session_register($usuarios_sesion);
y ha funcionado... lo que no se si tendre que cambiar algo mas...
  #4 (permalink)  
Antiguo 04/03/2005, 10:26
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
no, solo eso te tiene que funcionar, intenta y si te dá un error avisas.

No creo que pase nada.
  #5 (permalink)  
Antiguo 04/03/2005, 10:50
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 daniph
Gracias por tu respuesta...

He estado echando un ojo al manual de sessiones de www.php.net y he visto que tenia register_globals en On por lo que he cambiado session_name($usuarios_sesion); por session_register($usuarios_sesion);
y ha funcionado... lo que no se si tendre que cambiar algo mas...
Eso no es correcto .. no tiene nada que ver la definición del nombre de una sesión con crear una variable de sesión .. es bien diferente el termino.

Por lo demás .. el "script" original que tomastes dicho código es:

Autentificator
http://php.cluster-web.com/autentificator

donde puedes ver su documentación completa y ejemplos de uso ...

Sobre tu "adaptación":

session_destroy();
header("location:acceso.php");

fijate que por algo se usa en el script original exit; tras cada header() de "location" .. tambien fijate que hay un espacio entre el "location:" y el URL que se redirecciona.

A su vez .. si tu usas:
session_name($usuarios_sesion);

(en tu caso) .. ¿donde defines esa variable $usuarios_sesion ? .. esa variable define el nombre de tu sesión .. si quieres lo usas (en todos los scripts) o no .. pero debe tener un valor (un string) .. de hecho en los scripts originales veras un "require("aut_config.inc.php") .. que contiene dicho valor de ese nombre de sesión.

Por ahí puede ser que pierdas la sesión .. el nombre no se definó. Pero también puede a su vez afectar a como propagas el SID en tu configuración de PHP .. El código que usas por lo que hace (redireccionamientos vía header() y demás) .. requiere que propagues el SID en cookies (php.ini: session.use_cookies = ON) .. así que también necesitas de un navegador que acepte dichas cookies.

Un saludo,
  #6 (permalink)  
Antiguo 05/03/2005, 04:08
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 22 años, 8 meses
Puntos: 0
Aha! Muchas gracias Cluster... efectivamente la variable del nombre de la sesion no estaba definida, entiendo de ahi el problema...

Por otro lado session.use_cookies = 1 entiendo que la session se propaga en cookies ¿es indiferente que se propague en cookies o en url?

Gracias, ahora funciona 100%
  #7 (permalink)  
Antiguo 07/03/2005, 06:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Por otro lado session.use_cookies = 1 entiendo que la session se propaga en cookies ¿es indiferente que se propague en cookies o en url?
Bueno .. en principio es -necesario- que el SID se propague .. sea por el URL o en cookies.

Pero .. a nivel funcional .. la propagación del SID en cookies solventa algunos problemas de seguridad y simplifija la programación .. pues no tienes que insertar el SID a mano (en los casos que session.use_trans_sid = 1 no lo hace que son unos cuantos). También el uso de "cookies" en general plantea otros problemas asociados: necesitas de un navegador que acepte cookies .. y que nada las bloquee (algunos proxy's podrían hacerlo .. etc).

La propagación del SID en el URL es menos segura que por cookies ..pero solventa los problemas de "requerimientos" del cliente (del navegador que acepte cookies).

Por mi parte .. prefiero en mis aplicaciones avisar a mis usuarios que el sistema requiere que acepten dicha cookie (la que PHP genera para la propagación del SID) ..

Un saludo,
  #8 (permalink)  
Antiguo 07/03/2005, 09:29
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 22 años, 8 meses
Puntos: 0
Gracias Cluster, eres como un libro abierto...

Saludos!
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 05:52.