Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/03/2006, 15:56
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para que propagas en una variable se sesión un "password" que luego usas para hacer una consulta SQL a tu BBDD? y obtener datos extra del usuario + validación del usuario.

No tiene sentido hacer eso cuando uno usa sesiones.

El proceso de "autentificación" ha de hacerse directamente desde tus formularios de "login" donde pides tu par: usuario/contraseña y de ahí los contrastas contra tu BBDD para obtener si es correcto ese "login" o no, en ese punto tu creas las variables de sesión necesarias que identifiquen a tu usuario: un "nick" o nombre, su ID para usarlo en otras relaciones en tus sistemas .. y otros datos si lo requieres.

Luego pasas al proces de "validación" de que ese usuario esté en el sistema autentificado .. en ese caso -sólo- revisas si existe tus variables de sesión (con una -sobra-) y listo .. NO es necesario ni es óptimo andar "consultando" constantemente una BBDD para ese fin y usando sesiones.

Así que uno de tus scripts protegidos por sesiones simplemente sería cosa de hacer validaciones tipo:

Código PHP:
<?
session_Start
();
if (!isset(
$_SESSION['alguna_De_tus_varibles'])){
die (
"NO está autentificado");
}

// resto de tu script .. Lo anterior por supuesto que puedes desglosarlo en un archivo externo y llamarlo por un "include()" donde lo requieras.
Esta filosofía de trabajo de este tipo de sistemas la puedes ver en este ejemplo:

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

Tan sólo observa su código y los ejemplos .. veras todo esto que te he comentado.

Cita:
Yo tengo estructurada por partes, es decir, toda la plantilla y luego egun que quiero el contenido de ella, he leido que el session_start(); hay que hacerlo nada más empezar, entonces eso hago, en la plantilla, que es la que carga siempre lógicamente, arriba del todo le tengo puesto session_start();, ya no le pongo más veces, ¿eso esta bien así?
Si te fijas, en estricto rigor un "include()" hace un "cortar y pegar" del código que se llama desde el punto que se usa dicha función hasta donde termine el código que llamas externo, continuando con el resto del código del script que lo llame. Todo ello junto para el interprete de PHP forma una entidad (un sólo código) y se ejecuta .. por ende si el pre-requisito de usar sesiones es que tenga que estar un "session_start()" al principio del código o mejor dicho antes de pretender acceder al array superglobal: $_SESSION o usar cualquier otra función de session_xxxx() relacionada .. ...

Lo que mencionas es correcto (si, despues de todo el blablabla xD), pero ten cuidado si alguien te llama a tus scripts que tienes por llamadas por "include()" en forma directa .. ¿que pasaría ahí? .. tal vez nada depende de lo que hagan estos .. de que variables usen (de sesión) .. etc.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.