PHP - Logeo en controller MVC

 
Vista:
sin imagen de perfil
Val: 21
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Logeo en controller MVC

Publicado por Fernanda (8 intervenciones) el 31/03/2020 07:52:16
Hola, buenas,quisiera el aporte de alguien...
Estoy trabajando en un logeo, pero necesito hacer validar a diferentes tipos de usuarios, en este caso son 1=Usuario final, 2=Admin y 3=Superusuario.
En la siguiente manera puedo acceder a solo uno de ellos pero necesito que al logearse automanticamente sepa que tipo de usuario es:
Este es el codigo que estoy manejando, pero aun soy nueva y no le entiendo del todo.
De ante mano, gracias!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<DOCTYPE html>
<html>
 
      <!-- Bootstrap core CSS -->
    <link href="res/bootstrap3/css/bootstrap.css" rel="stylesheet">
 
    <!-- Add custom CSS here -->
    <link rel="stylesheet" href="font-awesome/css/font-awesome.min.css">
<?php
 
// define('LBROOT',getcwd()); // LegoBox Root ... the server root
// include("core/controller/Database.php");
 
if(!isset($_SESSION["user_id"])) {
$user = $_POST['email'];
$pass = sha1(md5($_POST['password']));
 
$base = new Database();
$con = $base->connect();
$sql = "select * from user where (email= \"".$user."\" or username= \"".$user."\") and password= \"".$pass."\" and is_active='1'";
//print $sql;
$query = $con->query($sql);
$found = false;
$userid = null;
while($r = $query->fetch_array()){
	$found = true ;
	$userid = $r['id'];
}
 
if($found==true) {
//	session_start();
//	print $userid;
	$_SESSION['user_id']=$userid ;
//	setcookie('userid',$userid);
//	print $_SESSION['userid'];
 
	print "Espere porfavor ... $user";
 
 
 
 
	print "<script>window.location='index.php?view=home';</script>";
}else {
	print "<script>window.location='index.php?view=login';</script>";
}
 
}else{
	print "<script>window.location='index.php?view=home';</script>";
}
?>
 
 
 
 
 
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Logeo en controller MVC

Publicado por Julio (830 intervenciones) el 31/03/2020 08:44:53
Hola.

¿Dónde guardas el tipo de usuario que es?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 21
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Logeo en controller MVC

Publicado por Fernanda (8 intervenciones) el 31/03/2020 08:53:13
Hola en dónde se hace el select, en la parte is_active='1'

1
$sql = "select * from user where (email= \"".$user."\" or username= \"".$user."\") and password= \"".$pass."\" and is_active='1'";

En su caso iría 2 o 3 también.
Pero me gustaría que se pudiera hacer a través de switch o algo así, pero aún no en cuento cómo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Logeo en controller MVC

Publicado por Julio (830 intervenciones) el 31/03/2020 09:00:13
Ah, porque is_active parecía otra cosa. Pero entonces, ¿qué problema tienes? Quiero decir, en ese is_active deberías poner 1, 2 o 3 según quisieras, ¿no?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 21
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Logeo en controller MVC

Publicado por Fernanda (8 intervenciones) el 31/03/2020 09:04:07
Evidentemente así sería, pero lo que quisiera es validar cada tipo de usuario.
Ya que al poner cualquier número, tengo que hacerlo manualmente.

Por ejemplo que alguien se logueara, automáticamente valide que tipo de usuario es y lo mandé a una vista "x"
No sé si me logro explicar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Logeo en controller MVC

Publicado por Julio (830 intervenciones) el 31/03/2020 09:34:53
Pero es que entonces no debes incorporar en el SELECT el tipo de usuario que es. Piénsalo, si incorporas el tipo de usuario en la búsqueda en la base de datos, sólo te va a traer usuarios de ese tipo de usuario. Así sólo podrías saber que el usuario que buscas NO es de un tipo en cuestión, pero no cuál es su tipo.

Lo que debes hacer es hacer el SELECT de los usuarios sin el campo is_active, así te traería al usuario que buscas. Una vez lo tengas, entonces ya puedes hacer un if-else (o un switch que querías) para ver qué tipo de usuario es (mirando el campo is_active, ahora sí), y dependiendo de qué tipo de usuario sea, hacer lo que quieras hacer con cada uno de ellos.

No sé si me he explicado bien.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 21
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Logeo en controller MVC

Publicado por Fernanda (8 intervenciones) el 31/03/2020 09:49:25
Si te haz explicado de maravilla, solo que quisiera un ejemplo de cómo implementarlo en mi código o algo así?
Alguna ayuda?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Logeo en controller MVC

Publicado por Julio (830 intervenciones) el 31/03/2020 09:56:43
Es más fácil de lo que piensas. Esto que tienes aquí te lo modifico un poco (comprueba las comillas en la consulta, que igual he puesto alguna de más o de menos):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$sql = "select * from user where (email= \"".$user."\" or username= \"".$user."\") and password= \"".$pass."\"";
$query = $con->query($sql);
$found = false;
$userid = null;
while($r = $query->fetch_array()){
	$found = true ;
	$userid = $r['id'];
 
    $userType = $r['is_active'];
    switch ($userType) {
            case '1':
                    // Lo que sea para el caso 1
                    break;
            case '2':
                    // Lo que sea para el caso 2
                    break;
            case '3':
                    // Lo que sea para el caso 3
                    break;
    }
}

Fíjate que en la consulta ahora ya no buscas por is_active. Luego cuando obtienes el usuario, miras cuál es su is_active y decides qué debe ocurrir en base a ello.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar