PHP - Acceder a pagina según rol de usuario

 
Vista:
Imágen de perfil de jose
Val: 184
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Acceder a pagina según rol de usuario

Publicado por jose (71 intervenciones) el 17/01/2021 22:49:24
Buenas noches,

Estoy intentando hacer una pagina de logon sobre una web, que haga que el usuario al acceder y según el rol o grupo al que pertenezca en la tabla mysql acceda a una página u otra.

Lo he intentado de varias maneras con un echo pero no ha funcionado. He mirado en foros y webs pero los intentos han sido infructuosos.

Agradecía que alguien me pueda echar una mano. ES UNA PÁGINA DE GESTION PERSONAL.

Pongo todo el código que he hecho.

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
$out ="";
 
if (isset($_POST['submit-login'])) {
	require ("pages/conn/connection.php");
 
		$uName = mysqli_real_escape_string($conn, $_POST['uName']);
		$pass1 = mysqli_real_escape_string($conn, $_POST['pass1']);
		$grupo = mysqli_real_escape_string($conn, $_POST['grupo']);
 
		$salted ="*********************".$pass1."***********";
		$hashed = hash('sha512',$salted);
 
		$query = "SELECT 1 FROM login WHERE uName ='$uName' AND pass1 ='$hashed' AND grupo='$grupo'";
		$result = mysqli_query($conn, $query) or die("BAD SQL: $query");
 
 
 
		if(mysqli_num_rows($result) > 0){
			switch ($grupo){
 
				case "admin":
					session_start();
					$_SESSION['login'] = "1";
					header("location:pages/******/*****1.php");
 
					require('pages/session/cookie.php');
					break;
				case "renta":
					session_start();
					$_SESSION['login'] = "1";
					header("location:pages/******/*****2.php");
 
					require('pages/session/cookie.php');
					break;
				default:
					$out = "Fail to login. Check user or/and password";
 
			}
 
 
 
 
		}else{
			session_start();
			$_SESSION['login'] = '';
			$out = "Fail to login. Check user or/and password";
		}
 
 
}
?>
 
 
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<meta name="viewport" content="width=device-width, intial-scale=1.0">
<meta name="login" content="login">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" >
<link rel="stylesheet" type="text/css" href="css/style.css">
 
 
</head>
	<body>
<div  id="base">
	<div>
		<div >
		<picture>
			<!--<source media="(min-width: 602px) and (max-width: 800px)" srcset="../images/recibo-movil.png">
			<source media="(max-width: 480px)" srcset="images/recibo-movil.png">-->
			<img id="imagen" src="images/recibos.png" alt="Recibos">
		</picture>
		</div>
 
		<div>
			<h1>Login de acceso</h1>
		</div>
	</div>
	<div>
		<center>
	 		<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
				<br><br><br>
				<div class="campo">
		 			<label>Usuario:</label> <input type="text" name="uName" placeholder="Escribe el usuario" autocomplete="off" required /><br><br>
					<label>Contraseña:</label><input type="password" id="password" name="pass1" placeholder="Escribe la contraseña" autocomplete="off" required />
					<span class="button" type="button">Mostrar</span><br><br>
				</div>
				<br><br>
				<input class="button" type="submit" name="submit-login" value="login"/>
				<a class="button" href="pages/session/register_login.php">Registrar</a>
 
	 		</form>
				<?php echo $out;?>
 		</center>
		</div>
</div>
 
<script>
//Función para visualizar contraseña
document.querySelector('.campo span').addEventListener('click', e => {
	const passwordInput = document.querySelector('#password');
	if (e.target.classList.contains('show')) {
			e.target.classList.remove('show');
			e.target.textContent = 'Ocultar';
			passwordInput.type = 'text';
	} else {
			e.target.classList.add('show');
			e.target.textContent = 'Mostrar';
			passwordInput.type = 'password';
	}
});
</script>
</body>
</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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Acceder a pagina según rol de usuario

Publicado por Mauro (1036 intervenciones) el 20/01/2021 20:06:47
Hola José:

¿Cómo estás? En este artículo hay un ejemplo de cómo implementar redirecciones basadas en roles de usuarios.

Consúltame si te quedan dudas!

Saludos,
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 jose
Val: 184
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Acceder a pagina según rol de usuario

Publicado por jose (71 intervenciones) el 31/01/2021 10:56:26
Buenos Mauro,

Siento no haber podido contestar antes. He estado muy ausente estos días con este proyecto.

Finalmente lo arregle con el usuario. De todas formas veo lo que me has pasado es muy interesante, veo que es fácil implementarlo, por lo que en cuanto tengo un hueco me pondré con ello.

Muchas gracias y siento responder tarde.
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Acceder a pagina según rol de usuario

Publicado por Mauro (1036 intervenciones) el 01/02/2021 21:44:59
Excelente José! Exitos!

Cualquier cosa me consultas ;)
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 jose
Val: 184
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Acceder a pagina según rol de usuario

Publicado por jose (71 intervenciones) el 02/02/2021 11:46:36
Muchas gracias Mauro,

Estoy aprendiendo mucho con gente como tu. Cada vez que tengo una duda me harto de buscar en internet hacer pruebas y sino pregunto por aquí casi siempre son los mismo los que contestan, y gracias a vosotros aprendo mucho.

Estoy en un proyecto personal con mysql, php y html que la curiosidad hace que haya crecido mucho más de lo esperado.
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Acceder a pagina según rol de usuario

Publicado por Mauro (1036 intervenciones) el 02/02/2021 15:20:59
Gracias por tus palabras José :)

Me alegra ayudar, ¿de qué se trata tu proyecto?
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

Acceder a pagina según rol de usuario

Publicado por adrianvq (1 intervención) el 10/05/2023 18:57:00
Hola amigos como estas, tambien estoy involucrado an algo parecido, tengo una pagina web con enlaces url de otros sistemas, necesito crear un login de acceso, para que cuando un user se loque, tenga acceso a los sistemas que tenga autorizado segun su rol,, alguien pudiera ayudarme con eso
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Acceder a pagina según rol de usuario

Publicado por Mauro (1036 intervenciones) el 11/05/2023 14:24:13
Hola:

Si entiendo bien lo que estás queriendo hacer un SSO, ¿puede ser?

Esto puede ser bastante complejo... algo que podrías intentar sería que todos los sistemas utilicen un mismo servidor de autenticación en el cual el usuario se logea y luego el resto consulta para determinar su nivel de acceso.

Te recomendaría que mires auth0 para no complicarte de más.

Saludos,
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