Controlar sesiones

No se como usar la función session_start para controlar que solo pueda haber una sesión abierta con un usuario. He buscado ejemplos en internet pero no me sirven de mucho.
Si me pudieras poner uno, te lo agradecería.
Me han liado con todas las funciones como session_register(), $_SESSION('').............

1 respuesta

Respuesta
1
Cuando conectes a un usuario, es decir, haya puesto su usuario y contraseña, y después de haber puesto el session_start en esa página, asigna este valor:
$_SESSION['MM_Username'] = $loginUsername;
Corresponde al nombre de usuario o al email, según lo que elijas en tu formulario de entrada.
Esa variable, la $_SESSION['MM_Username'] la puedes utilizar, comparar, ver si está utilizada (isset) o limpiarla (unset). Y esto lo podrás ver en todas las páginas donde tengas el session_start
A ver si ahora te puedo haber aclarado algo...
La verdad que no lo entiendo muy bien y mira que tiene que ser sencillo pero al final me deja iniciar varias sesiones a la vez con el mismo usuario.
Te pongo una parte del código aver si así me puede ayudar un poco más:
<?php
$sesion = session_start();
$login=$_POST['login'];
$pass=$_POST['pass'];
$_SESSION['usuario'] = $login;        
if(isset($_SESSION['usuario']))
{
?>
<script type="text/javascript">
    alert('Ya hay una sesion abierta con este usuario.');
    </script>
<?php
}
else{
    require_once ("conectar.php"); //conecta a la base de datos
    include("adodb/adodb.inc.php");
    if(!empty($_POST['login']) && !empty($_POST['pass']))  //si cadena llena
    {
Claro, te estás rayando, jajaj..
Lo primero, usa
session_start();
No asignándolo a una variable.
Para poder comprobar si ya hay un usuario con esa sesión debes asignar esa variable global cuando ese usuario acceda, de forma que cuando vuelva a la página del login, simplemente comprueba si ese valor tenia algo asignado, que serían tus lineas:
if(isset($_SESSION['usuario']))
{
?>
<script type="text/javascript">
    alert('Ya hay una sesion abierta con este usuario.');
    </script>
<?php
}
Si lo que quieres es que solo haya una sesión activa de todos los usuarios que a la vez pueden estar en la Web, la cosa es diferente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas