entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

evitar 2 sessiones mismo usuario en php

Como puedo hacer para que por ejemplo el usuario "JUANITO" con passord "123"
no se logge por segundaves en otro navegador u otra pc

eh escuchado que creando un campo por ejemplo Autentificado en la base de datos
pero aun no se como!!

esta es mi BD
id_usuarios/user/pass/tipos/nombre
1/Juaito/123/admin/Juan perez
2/pepe/321/disenador/pepe grillo

este es el codigo

class metodos
{
    //Login
    public function login()
    {
        $sql = "SELECT * FROM usuarios WHERE user = '$_REQUEST[usuario]' AND pass = '$_REQUEST[password]' ";
        $sql1 = mysql_query($sql,conexion::con());

        if(mysql_num_rows($sql1) == 0)
        {
            header("Location: login.php");
        }
        else
        {
            $fila = mysql_fetch_array($sql1);

            $_SESSION["usuario"] = $fila["user"];
            $_SESSION["password"] = $fila["pass"];
            $_SESSION["tipo"] = $fila["tipos"];

            if($_SESSION["tipo"] == "Diseno")
            {
                header("Location: diseno/reportes.php");
            }
            else if($_SESSION["tipo"] == "Grabados")
            {
                header("Location: grabados/reportes_pendientes.php");
            }
            else if($_SESSION["tipo"] == "Suajes")
            {
                header("Location: suajes/reportes_pendientes.php");
            }
            else if($_SESSION["tipo"] == "Admin" ) 
            {
                header("Location: admin/diseno/reportes.php");
            }
        }
    }
}

1 Respuesta

3votos

Leonardo-Tadei Puntos227300

Hola Erik,

paar implementar esto, tenés que agregar un campo a la tabla de usuarios indicando que ya hay un login activo o agregar otra tabla en dónde guardar los usuarios logueados.

Luego cuando consultás si el usuario y la clave son válidos, te fijás también que no haya un login activo, y si lo hay, impedís el ingreso.

Hacer esto implica que tenés que limpiar el campo del login activo cuando el usuario sale, porque si no no puede volver a entrar. Por otra parte, tenés que implementar algún mecanismo para que, en caso de que el usuario no apriete "salir" y nada más cierre el navegador o apague la computadora, expire la sesión del usuario, porque si no otra vez no puede volver a entrar.

Generalmente, se pone como bandera de que hay una sesión activa la fecha y hora, y si pasa un tiempo largo, se sonsidera que la sesión expiró y se lo desloguea.

Para estas cosas te recomiendo darte una vuelta por ejemplo por www.phpclasses.org y buscar una clase que se encargue de esto. Hay código de muy buena calidad listo para usar, y de paso aprendés buenas prácticas del trabajo de otros. (me dolíeron los ojos al ver que tu clase se llama "métodos"...)

Salduos cordiales!

0voto

erick comentado

muchas gracias! de escho avia leido algo referente con la ip la fecha para el control de este problema pero no le tengo muy claro!!
con respecto al nombre de la clase es la version de prueba antes de subir al servidor ahahahahahaha

muchas gracias master me dare una vuelta por el link que me has mandado!!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta