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

2votos

Login para distintos usuarios

Buenas, tengo una duda, estoy haciendo un login para distintos usuarios, he hecho dos tablas, una de usuarios y otra de admin.
Tengo la duda de como implementarlo en php, he intentado hacer esto, pero no me funciona.

<?php session_start();
if (isset ($_SESSION['usuario'])){
    header('Location: index.html');
}
if ($_SERVER['REQUEST_METHOD'] =='POST') {
    $email = filter_var(strtolower($_POST['email']), FILTER_SANITIZE_STRING);
    $password = $_POST['password'];
    $password = hash('sha512', $password);
    try{
        $conexion = new PDO('mysql:host=localhost;dbname=drivers_parade_club', 'root', '') ;
     }catch (PDOException $e) {
         echo "Error". $e->getMessage();;
     }
     $statement = $conexion->prepare ('SELECT * FROM usuarios WHERE email = :email AND pass = :password');
     $statement = $conexion->prepare ('SELECT * FROM admin WHERE email = :email AND pass = :password');
     $statement->execute(array(
         ':email'=> $email,
         ':password'=>$password

     ));
     $resultado = $statement->fetch();
     if ($resultado !==false) {
         $_SESSION ['usuario'] = $email;
         header('Location: index.html');

     }elseif($resultado !==false){
        $_SESSION ['usuario'] = $email;
        header('Location: dashboard.html'); 
     }else {
         $errores .= '<li> Datos incorrectos</li>';
     }
}
?>

cobasESP comentado Jun 14

Para que haces esto exactamente?? supongo que para separar los usuarios normales de los admins, para eso en la tabla usuario crea una columna permisos y con eso juegas en el código, hacer esto que tienes planteado es casi inviable yuna mala practica

1 Respuesta

1voto

Umarumm Puntos600

una pregunta son dos tablas sin una llave que las relacione o son separadas
si están relacionadas deberías usar un inner join para traer los valores de ambas tablas si no están relacionadas porque no haces una tabla que se llame perfil por ejemplo agregas los perfiles hay como "usuario,admin etc" y haces el inner join y mandas a volar admin de esa manera solo tendrías una consulta y quedaría algo como esto

<?php
session_start();
$correo=$_POST['correo'];
    $clave=md5($_POST['clave']);
    require_once('Conexion.php');
    $conn = Conectar();

    $stmt = $conn->prepare("SELECT  id_usuario, nombre, apellido, correo, p.id_perfil, perfil FROM usuario u INNER JOIN perfil p ON p.id_perfil=u.id_perfil WHERE u.correo=:correo AND u.clave=:clave");
    $stmt->bindParam(':correo',$correo);
    $stmt->bindParam(':clave',$clave);
    $stmt->execute();

    if($stmt->rowCount()==1){
        $fila=$stmt->fetch();
        $_SESSION['idperfil']=$fila['id_perfil'];
        if($fila['id_perfil']==1)
            {header("Location: ../administrador/index.php");}
        if($fila['id_perfil']==2)
            {header("Location: ../aprendiz/index.php");}
        if($fila['id_perfil']==3)
            {header("Location: ../root/index.php");}
    }
    else{
         echo "<font color='red'>Datos No Validos</font>";
    }

?>  

flowcou comentado Jun 26

Hice dos tablas, por que no sabía realmente, como hacerlo, así que hice algo para salir del paso. No están relacionadas, tengo una tabla, con usuarios y otra con usuarios2 por que al crear una tabla llamada admin o administradores me daba fallo.

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

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Otras Preguntas y Respuestas


Actividad Reciente

  • carlossevi ganó una medalla hace 2 horas

    Buena Respuesta - Recibió +1 votos en respuesta
  • matrixmar8 ganó una medalla hace 1 día

    Club de los 100 - Recibió un total de 100 puntos
  • matrixmar8 ganó una medalla hace 1 día

    Humano Verificado - Verificó su email
  • JoseVillalta ganó una medalla hace 1 día

    Club de los 100 - Recibió un total de 100 puntos
  • JoseVillalta ganó una medalla hace 1 día

    Humano Verificado - Verificó su email
  • Tammya ganó una medalla hace 1 día

    Club de los 100 - Recibió un total de 100 puntos
  • Tammya ganó una medalla hace 1 día

    Humano Verificado - Verificó su email
  • edu_botero ganó una medalla hace 1 día

    Fotogénico - Subió un avatar
  • edu_botero ganó una medalla hace 1 día

    Club de los 100 - Recibió un total de 100 puntos
...

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

Conecta