Foros del Web » Programando para Internet » PHP »

Session

Estas en el tema de Session en el foro de PHP en Foros del Web. hola a [email protected] Estoy haciendo una pagina en php y mysql,y se accede a ella mediante un login y un password, Lo que quiero hacer ...
  #1 (permalink)  
Antiguo 09/02/2004, 05:22
 
Fecha de Ingreso: febrero-2004
Mensajes: 7
Antigüedad: 13 años, 10 meses
Puntos: 0
Session

hola a [email protected]
Estoy haciendo una pagina en php y mysql,y se accede a ella mediante un login y un password,
Lo que quiero hacer es que un usuario no pueda entrar en la pagina si ya tiene abierta una session en ella.
Hay mi problema:
¿Como puedo comprobrar si una session esta activa?
Gracias
  #2 (permalink)  
Antiguo 09/02/2004, 05:42
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 14 años
Puntos: 0
hola,

una solucion seria establecer una variable de sesion cualquiera y cuando se acceda por primera vez a la pagina de login, comprobar si esta definida o no. Si no lo esta, se presenta el login, si si que esta (es que ya se ha pasado por el login) y se puede redirigir a otra pagina cualquiera).
por ejemplo:

login.php
Código PHP:
<?
session_start
();

if ( isset(
$_SESSION['variable']) )
{
 
// ya se ha pasado por el login
 
header("Location: pagina_cualquiera.php");
 exit;
}
else 
// no se ha pasado por login
{
 
// presentar aqui todo el codigo PHP y HTML para crear el 
 // formulario de acceso (login)
}
por otro lado, supongo que la comprobacion de que el login y la clave son correctos, la haras en otra pagina php. Entonces, en esa pagina solo tienes que darle valor a esa variable de sesion:

otra_pagina.php
Código PHP:
// ... comprobacion de login y clave de acceso
 
$_SESSION['variable']=1// por ejemplo 
Espero que te sirva.

un saludo.
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #3 (permalink)  
Antiguo 09/02/2004, 06:57
 
Fecha de Ingreso: febrero-2004
Mensajes: 7
Antigüedad: 13 años, 10 meses
Puntos: 0
Perdona pero creo que no lo he entendido bien,
porque si abres una ventana del navegador y entras como usuario tal y como esta en tu ejemplo , defines la variable para esa sesion.
pero si abres una nueva ventana en el navegador la variable que has definido antes esta sin definir para esta nueva sesion por lo que puedes volver a entrar aunque no hayas cerrado la primera.
La idea que yo tenía era cuando el usuario entra por primera vez abro session y hallo session_id(). este session_id() lo guardo en un campo de la tabla 'usuarios' de la bd.
Luego cuando un usuario intenta entrar hago una consulta donde compruebo su login su password y session_id(),si es la primera vez que entra el campo session_id() estara vacio,lo dejo entrar, si session_id() tiene valor,aqui mi pregunta,comprobar si esta activa,si esta activa no puede entrar ,si no esta activa puede entrar.
  #4 (permalink)  
Antiguo 09/02/2004, 07:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La solución que propone puchitol ... servirá si el usuario no ha salido de tu página y si no ha vuelvo a hacer otro login (sea en el mismo cliente o en otro).

Para solventar el problema de que una cuenta (lease: usuario/password) que dá acceso a tu sistema . no se use más de una vez por sesión (entiendase sesión como "uso" de la aplicación hasta que la deje de usar el usuario) .. te conviene leer sobre el tema de "concurrencia" (usa el buscador del foro por ese termino) ..

Las sesiones son Únicas para quien las crea .. así que para este último caso se debe tener un control de quien hizo el "login" en que momento (fecha/hora) para determinar si podrá realizar un nuevo lógin o no con ese usuario/password.

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 01:36.