Foros del Web » Programando para Internet » PHP »

Evitar multiples sesiones

Estas en el tema de Evitar multiples sesiones en el foro de PHP en Foros del Web. Bueno segun mis investigaciones quería hacer cosas que bueno no debería: 1° Pensaba que se puede tener mas de una sesión abierta en un mismo ...
  #1 (permalink)  
Antiguo 04/03/2010, 09:22
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
Exclamación Evitar multiples sesiones

Bueno segun mis investigaciones quería hacer cosas que bueno no debería:
1° Pensaba que se puede tener mas de una sesión abierta en un mismo equipo y por ahí me dijeron que no era posible y nada seguro.

Una vez corregido eso hice esto
2° tengo creadas paginas php en el orden siguiente:
- loguin.php // el usuario coloca usuario y pass
- control.php //verifico si el usuario es quien dice y lo dirijo a su pagina correspondiente.
-verifica.php //la seguridad es decir que coloco al usuario en las paginas que corresponde sin que tenga acceso a otras paginas de usuarios con distintos priviligios redirigiendolo a si quiere ingresar a loguin.php si quiere entrar a una pagina que no le corresponde.
-salir.php //destruye la sesión

Ahora bien tengo un problema si el usuario coloca en una nueva venta la direccion de loguin.php se le abre la pagina para loguear cuando considero que si no cierra su sesión actual no debería abrirsela esa ventana, ese es mi gran problema no se si alguien pudiera ayudarme a que mientras no se cierra la sesión ya sea con el enlace o boton cerrar sesion o cerrando el explorador, el usuario no pueda acceder a loguin.php.
De antemano Gracias.
  #2 (permalink)  
Antiguo 04/03/2010, 09:29
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Evitar multiples sesiones

hace una consulta en la pagina de login para verificar si la sesion existe en caso de que exista lo redireccione a la pagina de inicio del usuario y sino que muestre el loguin.
  #3 (permalink)  
Antiguo 04/03/2010, 09:37
Avatar de genuine_carlosV2  
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Evitar multiples sesiones

En la página de 'loguin.php' haz algo así:
Código PHP:
<?php
session_start
();
if( !isset( 
$_SESSION'verloguin' ] ) || $_SESSION'verloguin' ] ) { ?>
Toda la página como tenías hasta ahora
<?php } else {
header"location: página a donde le quieres llevar" );
?>
Finalmente, en la página de 'control.php' cuando sepas que el usuario es quien dice ser, haz esto:
Código PHP:
$_SESSION'verloguin' ] = false
Saludos
__________________
Carlos

Recoger datos es solo el primer paso hacia la sabiduría. Pero compartir información es el primer paso hacia la comunidad. - IBM
  #4 (permalink)  
Antiguo 04/03/2010, 09:41
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Evitar multiples sesiones

1.- verifica que no este iniciada la session en login, ejemplo:
Código PHP:
Ver original
  1. if(!empty($_SESSION['nombreDeTuSession'])){
  2.      header('location: index.php');
  3. }else{
  4. //formulario de logueo
  5. }
2.-
Cita:
Iniciado por otacon3784 Ver Mensaje
Bueno segun mis investigaciones quería hacer cosas que bueno no debería:
1° Pensaba que se puede tener mas de una sesión abierta en un mismo equipo y por ahí me dijeron que no era posible y nada seguro.
eso si es posible, las sessiones se crean por cada navegador es decir si abres firefox, ie, opera, etc. por cada uno de ellos se creará una session.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #5 (permalink)  
Antiguo 04/03/2010, 13:09
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Evitar multiples sesiones

Bueno creo que hago algo mal... por que no me da ningun resultado o es que no estoy definiendo bien mis variables coloco el código para ver si encuentran el error

loguin.php
Código PHP:
<?php    
  session_start
();
  if( !isset( 
$_SESSION'verloguin' ] ) || $_SESSION'verloguin' ] )
  { 
    echo 
"<form name='form' action='control.php' method='POST'>";   
     if (
$_GET["errorusuario"]=="si"){
      echo 
"<h2>Datos incorrectos</h2>";
     }  
     if (
$_GET["errorusuario_1"]=="si"){
      echo 
"<h2>Este Usuario ya esta<br> SESIONADO</h2>";
     }
     else{
      echo 
"<h2>Introduce tu clave de acceso</h2>"
     }  
     echo (
'Usuario :');
     echo (
'<input type="Text" name="usuario" size="15" maxlength="50">');
     echo (
'Password :');
     echo (
'<input type="password" name="contrasena" size="12" maxlength="50"> ');
     echo (
'<input type="Submit" class="buttonSubmit" value="ENTRAR">');
     echo (
'</form>');
     echo (
'</center>'); 
  }  
  else
   
header('location: index.php');                
  
?>
luego el form va a
control.php
Código PHP:
//Si el usuario es quien dice ser entra a:
        
session_cache_limiter ("private");
        
session_start();
        
session_id();
        
$_SESSION'verloguin' ] = false//dato aumentado
        
$_SESSION['nombre']=$uno;
        
$_SESSION['pass']=$dos;
        
$_SESSION['tipo_usuario']=$tres;
        
$_SESSION['paterno']=$cuatro;        
        
$_SESSION['materno']=$cinco;        
        
$_SESSION['email']=$seis;        
        
session_register("autentificado_u");
        
$autentificado_u "SI";
        
header ("Location: index_usuario.php");
        exit;
       }
       else
       {
          
header("Location: index.php?errorusuario_1=si");
       } 
Donde esta el error no ubico si alguien lo revisa me informa :)
  #6 (permalink)  
Antiguo 04/03/2010, 13:17
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Evitar multiples sesiones

me respondo a mi mismo ya ubique el error estaba que direccionaba mal
Código PHP:
header('location: index.php');// ERROR aca se loguea cualquier usuario
//cuando en realidad podría ser si es usuario a un index de usuario
header('location: index_usuario.php'); 
Muchisimas gracias a la gente que me colaboro con mi problema uno aprende mucho en foro gracias y espero poder con todos ustedes mas adelante en cualquier tipo de problema y como recibo ayuda también la brindaré en los problemas que conosco tratare de colaborar
  #7 (permalink)  
Antiguo 04/03/2010, 13:21
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Evitar multiples sesiones

yo lo haría así:
Código PHP:
Ver original
  1.   if( empty( $_SESSION[ 'autentificado' ] ))
  2.   {
  3.     echo "<form name='form' action='control.php' method='POST'>";  
  4.      if ($_GET["errorusuario"]=="si"){
  5.       echo "<h2>Datos incorrectos</h2>";
  6.      }  
  7.      if ($_GET["errorusuario_1"]=="si"){
  8.       echo "<h2>Este Usuario ya esta<br> SESIONADO</h2>";
  9.      }
  10.      else{
  11.       echo "<h2>Introduce tu clave de acceso</h2>";
  12.      }  
  13.      echo ('Usuario :');
  14.      echo ('<input type="Text" name="usuario" size="15" maxlength="50">');
  15.      echo ('Password :');
  16.      echo ('<input type="password" name="contrasena" size="12" maxlength="50"> ');
  17.      echo ('<input type="Submit" class="buttonSubmit" value="ENTRAR">');
  18.      echo ('</form>');
  19.      echo ('</center>');
  20.   }  
  21.   else
  22.    header('location: index.php');
y luego
Código PHP:
Ver original
  1. //Si el usuario es quien dice ser entra a:
  2.         session_start();//esto debe de estar en la primera linea de la pág.
  3.         session_cache_limiter ("private");
  4.         //session_id(); //no veo que lo estes usando
  5.         $_SESSION[ 'autentificado' ] = 'SI'; //dato aumentado
  6.         $_SESSION['nombre']=$uno;
  7.         $_SESSION['pass']=$dos;
  8.         $_SESSION['tipo_usuario']=$tres;
  9.         $_SESSION['paterno']=$cuatro;        
  10.         $_SESSION['materno']=$cinco;        
  11.         $_SESSION['email']=$seis;        
  12.         //session_register("autentificado_u"); //esto ya no se usa
  13.         $autentificado_u = "SI";//<- este lo puedes suprimir y usas en su lugar el  $_SESSION[ 'autentificado' ]
  14.         header ("Location: index_usuario.php");
  15.         exit();
  16.        }
  17.        else
  18.        {
  19.           header("Location: index.php?errorusuario_1=si");
  20.        }
salludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #8 (permalink)  
Antiguo 04/03/2010, 13:27
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Evitar multiples sesiones

gracias por la respuesta es una alternativa funcional, la pondré a prueba en un proyecto muy parecido al que utilizo ahora.
  #9 (permalink)  
Antiguo 31/10/2013, 00:04
Avatar de chely_daniela  
Fecha de Ingreso: mayo-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Respuesta: Evitar multiples sesiones

porque me marca error en el exit ();

Etiquetas: multiples, sesiones
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 19:42.