Foros del Web » Programando para Internet » PHP »

restringir contenido según usuario

Estas en el tema de restringir contenido según usuario en el foro de PHP en Foros del Web. hola a todos... quiero restringir contenido según usuario en una misma pagina. Por ej. usuario uno puede ver enlace uno dos y tres. usuario dos ...
  #1 (permalink)  
Antiguo 17/11/2008, 17:37
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 17 años, 10 meses
Puntos: 10
Pregunta restringir contenido según usuario

hola a todos...
quiero restringir contenido según usuario en una misma pagina.
Por ej.
usuario uno puede ver enlace uno dos y tres.
usuario dos solo puede ver enlace dos y tres.
pero no tengo muy claro como hacerlo.
actualmente hago la autenticacion de usuarios por sesiones y muestro y oculto información según allá sesión con un if.
resumiendo, como puedo mostrar contenido especifico (mas que todo enlaces) según el usuario?
agradezco su ayuda
salu2
__________________
@ivancamiloGo
  #2 (permalink)  
Antiguo 17/11/2008, 18:00
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 1 mes
Puntos: 6
Respuesta: restringir contenido según usuario

¿Cómo crees tu que podrías lograr esa solución? ¿Tienes alguna idea concreta? Necesitamos ver al menos algo de código para apoyarte.
  #3 (permalink)  
Antiguo 17/11/2008, 18:26
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 17 años, 10 meses
Puntos: 10
Respuesta: restringir contenido según usuario

bueno he pensado como hacerlo pero no doy como..
por ej el código que uso para ocultar un enlace o otro contenido cuando el usuario haga sesión o no es este
>
Código php:
Ver original
  1. <?php
  2.  
  3. if(!isset($_SESSION['setsion'])){?>
  4.    
  5.     <?php }else{ ?>
  6.    
  7.     <p><a href="eliminar.php?delete=<?php echo $row_Recordset1['ID']; ?>">eliminar</a>
  8.       <?PHP } ?>

pero que sucede, que cuando usuario que haga sesión va a poder ver el enlace y solo quiero que un usuario o los usuarios que yo quiera lo puedan ver.
he pensado en hacerlo con niveles de seguridad pero no se exactamente como hacerlo.
EJ:
usuario con nivel 1 pueda ver el enlace
usuario con nivel 2 no lo pueda ver.
el numero de nivel estaría alojado en la base de datos mysql
__________________
@ivancamiloGo
  #4 (permalink)  
Antiguo 17/11/2008, 19:26
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: restringir contenido según usuario

Bien, solo usa el sentido común y el ingenio y si no te resulta yo te digo: este es un consejo en general para restringir contenido. En primer lugar debesr estar seguro de lo que quieres hacer, sin divagaciones. Debe haber niveles de usuarios, digamos, el de nivel 3 mira de todo, el de nivel 2 se le restringue tal o cual contenido y el de nivel 1 pues ve solo ciertas cosas. Eso debe estar claro sin ambiguedades ni dudas. Si aún las tienes piensalo y plantealo hasta que quede sin dudas. Ahora haces un campo numérico en tu tabla al cual le nombrarás por ejemplo "nivel", en ese campo se debe guardar obviamente el número que define el nivel de usuario. Bien, ahora tienes tu página libre, sin restricciones, entonces al principio de la misma haces una consulta para obtener el nivel de usuario, se supone que haz hecho un código de logueo y que mediante sesiones transportas el ID del usuario logueado. Es decir de más que mediante ese ID debes obtener el nivel del usuario. Bien, ahora a cada parte en la que tendrá que haber restricciones pues la restringues mediante el nivel obtenido. De qué modo? Pues mediante la sentencia más usada en el mundo de la programación: el if.

if ($nivel > 1) {

contenido permitido para los usuarios de niveles 2 o 3
}

Y así por el estilo, y si quieres mostrar enlaces a los que no se puede ingresar por estar restringidos (lo cual me parece una actitud algo injusta, "ver y no poder") pues haces algo así:

<a href="<?php if ($nivel > 2) echo "enlace.html"; else echo "javascript:alert('Enlace restringido'); ?>">Enlace</a>

Bien, espero que te sirva.
  #5 (permalink)  
Antiguo 21/01/2016, 02:02
 
Fecha de Ingreso: enero-2016
Mensajes: 1
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: restringir contenido según usuario

hola, buscando este codigo, me tope con este resultado final.....
pero el codigo esta demasiado incompleto, no aporta nada, mas es un comentario incoherente, ya que si un webmaster decide restringir contenidos a grupos, no es mala idea... es dar ventajas a cierto tipos de usuarios.
alguien sabe crear esto?


pd: por si las dudas:
se busca que las paginas tengan esta regla:
- "si eres usuario registrado": muestra este contenido
- "si eres usuario registrado y nivel2" muestra contenido extra.
- si solo eres invitado: no muestres nada de lo anterior
  #6 (permalink)  
Antiguo 21/01/2016, 06:19
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: restringir contenido según usuario

Cita:
Iniciado por javiMoreno Ver Mensaje
hola, buscando este codigo, me tope con este resultado final.....
pero el codigo esta demasiado incompleto, no aporta nada, mas es un comentario incoherente, ya que si un webmaster decide restringir contenidos a grupos, no es mala idea... es dar ventajas a cierto tipos de usuarios.
alguien sabe crear esto?


pd: por si las dudas:
se busca que las paginas tengan esta regla:
- "si eres usuario registrado": muestra este contenido
- "si eres usuario registrado y nivel2" muestra contenido extra.
- si solo eres invitado: no muestres nada de lo anterior
eso es sencillo pero no tienes que reabrir post tan viejos, apertura uno nuevo con tu consulta o duda.
__________________
[email protected]
HITCEL
  #7 (permalink)  
Antiguo 21/01/2016, 20:27
Avatar de marmol  
Fecha de Ingreso: marzo-2004
Ubicación: en argentina
Mensajes: 197
Antigüedad: 20 años, 1 mes
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
  #8 (permalink)  
Antiguo 22/01/2016, 10:09
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: restringir contenido según usuario

Esperemos que después de 6 años le haya servido tu ayuda marmol :D
  #9 (permalink)  
Antiguo 22/01/2016, 19:43
Avatar de marmol  
Fecha de Ingreso: marzo-2004
Ubicación: en argentina
Mensajes: 197
Antigüedad: 20 años, 1 mes
Puntos: 4
Respuesta: restringir contenido según usuario

Gracioso "palo". Si, asi es, el año 2008 lo preguntó lo sé. :) Pero para el que lo necesite jeje.
__________________
Fabricante Maquina industriales
http://www.guidobatanmaquinarias.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:57.