Ver Mensaje Individual
  #7 (permalink)  
Antiguo 21/01/2016, 20:27
Avatar de marmol
marmol
 
Fecha de Ingreso: marzo-2004
Ubicación: en argentina
Mensajes: 197
Antigüedad: 21 años
Puntos: 4
Respuesta: restringir contenido según usuario

es simple:

1) Si es usuario (no se registro o no se logió nunca) es invitado "Nivel 0" ->Invitado
2) Si es usuario LOGIADO (y en el campo de la db esta el nivel "1") ->logiado con nivel 1
3) Si el usuario LOGIADO (y en el campo de la db esta el nivel "2") ->logiado con nivel 2

creas una tabla con campo nombre de usuario, email, etc etc.
y un campo llamado "nivel" int (1)

Cuando se registra el usuario (en el INSERT en la db insertas también el campo nivel con el valor "1").

luego en un panel de admin tuyo si queres que el usuario tenga privilegios "2"
actualizas ese campo con el id del usuario. (update ... where id bla... nivel "2")..



//Aca realicé un ejemplo. Practicamente está cocinado. Deberias crear las tablas con el campo mensionado anteriormente.
Las paginas de login, register etc.

Ahora vamos a las paginas que van a estar protegidas... de niveles. y la clase para detectar los niveles del usuario.


Clase para detectar nivel del usuario:

archivo_detector_de_nivel.php
Código PHP:
Ver original
  1. <?php
  2. class Chequiar_usuarios{
  3.  
  4.     public function nivel_check() {
  5. // Si no ha iniciado sesion[id_usuario] entonces es nivel '0' invitado.
  6. if( empty($_SESSION['id_usuario']) ){
  7. $nivel_cont_user = 0;
  8.  
  9. return $nivel_cont_user;   
  10. }else{ 
  11.     //  si hay session de usuario entonces... >>>>>
  12.         //Consultamos a la base de tados, ejemplo: Select nivel from tabla_usuarios where id = id_del_usuario
  13.        
  14.         $nivel_content_user = $row['nivel'];
  15.         return $nivel_cont_user; //Devuelvo el nivel del usuario
  16. }
  17.  
  18.     }
  19. }
  20. ?>


//Pagina protegida por niveles

home.php
Código PHP:
Ver original
  1. <?php
  2. //Incluimos el archivo que contiene la función que detecta en la db si el usuario tiene nivel 0, 1 o 2.
  3.  require 'archivo_detector_de_nivel.php';
  4.  
  5. //Asignamos una variable de la funcion del archivo incluido para obtener respuestas a los permisos.
  6. $chequiar_usuarios  = new Chequiar_usuarios();
  7. $variable_del_detector = $chequiar_usuarios->nivel_check;
  8.  
  9. //Si no esta logiado... es Invitado por lo cual lo "hechamos a otra pagina para que no acceda a este contenido" eso DIRECTAMENTE tambien lo podemos hacer en la misma clase del otro archivo...
  10. if($variable_del_detector==0){
  11.  
  12. header('Location: http://www.indexdemipagina.com'); //Lo envio a la pagina que deseo.
  13. exit(); //Finalizo el script por si las moscas.
  14. }
  15.  
  16.  
  17. ?>
  18. <html>
  19. <head>
  20. </head>
  21. <body>
  22. <?php if($variable_del_detector==1){ //Compruebo si el usuario tiene nivel 1 ?>
  23. <b>Bienvenido usuario nivel 1</b>
  24. <hr>
  25. <?php
  26. }
  27.  if($variable_del_detector==2){ //Compruebo si el usuario tiene nivel 2 vip
  28. ?>
  29. ---
  30. <strong>Bienvenido usuario nivel 2 VIP!!!</strong>
  31. --
  32. <hr>
  33. <?php
  34. }
  35. ?>
  36. </body>
  37. </html>

Si hay algun error avisen!
un saludo!!
__________________
Fabricante Maquina industriales
http://www.guidobatanmaquinarias.com