PHP - Crear sistema de privilegios

   
Vista:

Crear sistema de privilegios

Publicado por Miguel Freytes (28 intervenciones) el 14/07/2016 06:39:40
Hola estoy creando una web pero necesito hacer un sistema de administradores, moderadores y usuarios normales para que puedan acceder a diferentes paginas este es mi código de registro:

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
<?php
include'cn.php';
//RECIBIR LOS DATOS Y ALMACENARLOS EN VARIABLES
$usuario = $_POST["usuario"];
$email = $_POST["email"];
$clave = $_POST["clave"];
//CONSULTA PARA INSERTAR
 
$verificar_usuario=mysqli_query($conexion,"SELECT * FROM usuarios WHERE usuario = '$usuario'");
if(mysqli_num_rows($verificar_usuario)>0){
	echo'<script>
	alert("El usuario que escogiste esta en uso");
		window.history.go(-1);
		</script>';
	exit;
	}
$verificar_email=mysqli_query($conexion,"SELECT * FROM usuarios WHERE email = '$email'");
if(mysqli_num_rows($verificar_email)>0){
	echo'<script>
	alert("El correo que escribiste esta en uso");
		window.history.go(-1);
		</script>';
	exit;
}
 
$insertar = "INSERT INTO usuarios(usuario, email, clave) VALUES ('$usuario', '$email','$clave')";
 
//EJECUTAR CONSULTA
$resultado = mysqli_query($conexion, $insertar);
	if ($resultado) {
	echo'<script>
	alert("Te haz registrado exitosamente");
	window.location="../login.html";
	</script>';
	}
	else{
	echo'<script>
	alert("Error en la conexion");
		window.history.go(-1);
		</script>';
	}
 
//CERRAR CONEXION
mysqli_close($conexion);
?>
Y el login:
 
<?php
$usuario=$_POST['usuario'];
$clave=$_POST['clave'];
//INICIAR SESION
session_start();
//CONEXION CON LA BASE DE DATOS
include'cn.php';
//COUNSULTAS A LA BASE DE DATOS
$consulta="SELECT * FROM usuarios WHERE usuario='$usuario'||usuario='$email' and clave='$clave'";
$resultado=mysqli_query($conexion, $consulta);
$fila=mysqli_fetch_array($resultado);
if(!$fila['id']){
	echo'<script>
	alert("El usuario o la Clave son incorrectos");
	window.history.go(-1);
	</script>';
}
else{
	$_SESSION['id_usuario']= $fila['id'];
	$_SESSION['usuario']= $fila['usuario'];
	echo'<script>
	alert("Te haz logueado exitosamente");
	window.location="../indexUser.php";
	</script>';
}
mysqli_free_result($resultado);
mysqli_close($conexion);
?>
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 Víctor

Crear sistema de privilegios

Publicado por Víctor (169 intervenciones) el 14/07/2016 13:14:48
Hola:

En primer lugar a cada clase de usuario le asignas un código que puede ser numérico o no. Por ejemplo: a los usuarios normales le asignas "1" a los moderadores le asignas "2" y a los administradores "4" y esto se gurada en la tabla de usuarios de la base de datos y cuando se logea se guarda en una variable de sesión.
A cada acción posible le asignas otro código. Por ejemplo: si un usuario normal puede buscar y leer; un moderador: buscar, leer y corregir y una administrador: buscar, leer, corregir y borrar, debemos poner los siguientes códigos:
buscar ... 1
leer ........ 1
corregir .. 2
borrar ..... 4
Estos se guardan en el código de la acción.
Luego cuando un usuario entre en el sistema se le mostrarán sólo las acciones que cunplan que código_usuario >= código_acción. Así en el ejemplo un moderador no verá la acción borrar porque el código de la acción "borrar " es mayor que el código del usuario.
Finalmente para evitar que se entre en las acciones tecleando su URL, a la entrada de la acción se comprueba que el usuario tiene los permisos adecuados.
1
2
3
if ($_SESSION[permiso_usuario] < $nivel_permisos_accion) {
 // ir a login
}

Si necesitas más detalles, aquí estoy.

Saludos de Víctor.-
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

Crear sistema de privilegios

Publicado por Miguel Freytes (28 intervenciones) el 14/07/2016 17:23:05
Entiendo lo que me quieres decir pero no se como escribir en el código lo de buscar, leer, corregir y borrar me podrías dar una mano?
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 kip

Crear sistema de privilegios

Publicado por kip (562 intervenciones) el 14/07/2016 18:32:23
Hola, como te comenta Victor puedes implmentar un sistema de codigos y basandote en eso, redirigir a los scripts correspondientes de cada tipo de usuario, un ejemplo:

1
2
3
4
5
6
7
8
<?php
if ($_SESSION['tipo_usuario'] == 1){
header('Location: seccion_administrador.php');
}
if ($_SESSION['tipo_usuario' == 2){
header('Location: seccion_moderador.php');
}
//.....etc

El codigo que te coloque es solo para redirigir a sitios que solo seran accesibles para cada tipo de usuarios.

Es solo un ejemplo, deberias implementarlo a tu gusto y necesidad en tu proyecto.

Si tienes alguna duda, nos comentas.

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 Víctor

Crear sistema de privilegios

Publicado por Víctor (169 intervenciones) el 14/07/2016 19:47:35
Hola:

Por supuesto que deseo ayudarte, pero nos tienes que comentar con detalle lo que deseas hacer. Yo te he puesto lo de buscar, leer, etc. como ejemplo; pero en realidad no sé qué deseas hacer.

También resulta que no sé muy bien tu nivel de conocimientos. ¿controlas bases de datos SQL, PHP, javascript, AJAX, JQuery? Sobre lo último no te puedo ayudar porque me he negado a estudiarlo ... pero puedo cambiar de opinión.

Cuéntanos. Porque tu aprenderás de nosotros y nosotros de tí.

Nada se puede aprender bien si no te examinas o no lo enseñas.

Pedro Montero Martín.

Saludos de Víctor.-
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

Crear sistema de privilegios

Publicado por Miguel Freytes (28 intervenciones) el 14/07/2016 19:54:17
Entiendo lo basico de PHP, lo que necesito hacer es que los usuarios no puedan entrar a la pagina para editar las especificaciones, que lo tengan bloqueado y que los admin y moderadores puedan entrar a esa página para añadir otros dispositivos
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 Víctor

Crear sistema de privilegios

Publicado por Víctor (169 intervenciones) el 16/07/2016 10:00:56
Hola:

Lo más sencillo sería crear páginas diferentes:
- una para mostrar al usuario normal la información
- otra para que los administradores y moderadores modifiquen esta información.
- una tercera para añadir nuevas informaciones.
La primera sería una página normal y la segunda y tercera un formulario. Según quién entre se muestran un, dos o las tres opciones. Luego necesitarías una página que guarde la información en el servidor.

Lo que creo que deberías hacer es comenzar por hacer un sistema sin privilegios. Es decir desarrollar las acciones que quieres hacer accesible a todos los usuarios y luego abordar el asunto de los privilegios. Pero hay cosas que deberías concretar antes: ¿cómo se crean los administradores y moderadores? Los usuarios normales se crean de forma automática y se guarda la información en la base de datos. En la tabla "usuarios" debería guardarse el nivel de permisos de los usuarios, para que cuando se logeen se guarde ese nivel en una variable de sesión.

Habría otra manera de hacerlo: creando dos accesos diferentes: para usuarios normales (incluso sin clave) y otra para administradores.

Como ves mientras no definas claramente lo que quieres hacer no vas a avanzar gran cosa.

Saludos de Víctor.-
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