Foros del Web » Programando para Internet » PHP »

Restringir acceso a determinados ficheros

Estas en el tema de Restringir acceso a determinados ficheros en el foro de PHP en Foros del Web. Hola.. tengo un sistema simple de usuarios para contenido privado dentro de un sitio. Hasta ahora todo marcha perfecto, yo registro los usuarios, se identifican ...
  #1 (permalink)  
Antiguo 05/02/2006, 10:59
 
Fecha de Ingreso: noviembre-2004
Mensajes: 75
Antigüedad: 13 años
Puntos: 0
Exclamación Restringir acceso a determinados ficheros

Hola.. tengo un sistema simple de usuarios para contenido privado dentro de un sitio.
Hasta ahora todo marcha perfecto, yo registro los usuarios, se identifican y acceden a información privada. El problema surge cuando quiero que determinados usuarios no accedan a determinada información. Lo que necesito es algo super sencillo (creo) y estuve probando con Autentificator de Cluster, pero no resultó...
La idea es que cuando creo los usuarios, mediante checkboxs determino a que ficheros tienen acceso y a que fichenos no.
Ej:
Usuario: Jose
Acceso: pag1.php , pag2.php , pag3.php
Usuario: Pablo
Acceso: pag1.php, pag3.php , pag5.php

¿Me dan una ayudita para ponerme en órbita?

Saludos
Fe
  #2 (permalink)  
Antiguo 05/02/2006, 12:42
Avatar de gelit0  
Fecha de Ingreso: enero-2006
Mensajes: 25
Antigüedad: 11 años, 10 meses
Puntos: 0
Yo estoy ahora mismo en una situación similar y para resolverlo ya que no quiero hacerlo a nivel administración (ya que para 1000 personas no es fácil). Lo que he hecho es crearme una base de datos donde tengo los permisos de cada usuario (la db la creas como mejor veas tú) y luego, a la hora de logarse cada usuario creo una clase donde están sus permisos y los meto en la session, así puedo controlar que enlaces muestro y que enlaces no muestro, y también controlo que nadie entre en páginas que no debe.

Un ejemplo para ti sería algo del estilo (sin comprobar)

Código PHP:
<?php
require_once ("class_con_los_permisos.inc.php");
session_start;

if (! isset(
$_SESSION[usuario]->permiso_esta_pagina)){
 
header("Location: http: //" $_SERVER['HTTP_HOST']);
}else 
?>
HTML
<?php ?>
Supongo que habrá muchas clases ya creadas para esto, también que habrán mejores técnicas...

Asi que quien las sepa que las ponga, que a mi también me interesan. ;)
__________________
.-. GeL/T0 .-. Quieres saber mas de mi? lee mi blog: http://g05l21.net

Mi CV:
http://storage.g05l21.net/cv
  #3 (permalink)  
Antiguo 06/02/2006, 13:35
 
Fecha de Ingreso: noviembre-2004
Mensajes: 75
Antigüedad: 13 años
Puntos: 0
Alguna idea?
  #4 (permalink)  
Antiguo 06/02/2006, 13:49
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 11 años, 11 meses
Puntos: 0
Hola, lo que puedes hacer es crear un campo en la tabla que se llame acceso coloca y le das a cada usuario un numero X que tu vayas a usar y en las paginas donde hay que tener X nivel haces una comparacion con el usuario que este logeado y comparas que si tiene el nivel minimo o mayor para la web puede verla si no le das un mensajel.


:D mas claro que el agua, saludos cualquier cosa escribes ando medio full en mi trabajo pero yo respondo
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #5 (permalink)  
Antiguo 06/02/2006, 17:30
 
Fecha de Ingreso: noviembre-2004
Mensajes: 75
Antigüedad: 13 años
Puntos: 0
habiamos pensado en eso.. pero es lo mismo que niveles de usuarios y esa no es la idea... a lo que queremos llegar es a generar mediante un panel con checkbox, las distintas páginas a las que tiene acceso el usuario...
para que distintos usuarios con sistintos atributos accedan a distintas páginas.
Ej:
Usuario: Jose
Acceso: pag1.php , pag2.php , pag3.php
Usuario: Pablo
Acceso: pag1.php, pag3.php , pag5.php


grax! por tu ayuda!
  #6 (permalink)  
Antiguo 07/02/2006, 05:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si tu vas a decidir que escripts puede ejecutar tal usuario .. lo que necesitas en principio es una Base de datos (altamente recomendable) donde tener registrado el nombre de tus scripts/con URL

Seguidamente necesitas validar en cada script previa consulta SQL a tu BD si el nombre del script/con ruta que se pretende ejecutar está en la lista de los que el usuario puede ejecutar.

tabla_paginas
id_pagina
url_pagina

tabla_paginas_autorizadas_por_usuario
id_pagina_aut
id_usuario
id_pagina

usuarios
id_usuario
nombre
password ...

AL hacer "login" tu usuario .. extraes a un array en una variable de sesión la consulta SQL de las páginas que el usuario está autorizado (o te olvidas de sesiones y haces consultas SQL a cada movimiento de tus páginas/scripts).

Con $_SERVER['PHP_SELF'] obtienes el URL y nombre del script que estás ejecutando .. Esa es la busqueda que tendrás que usar contra el Array que tengas en tu variable de sesión que contendrá el mismo formato de URL's de la ubicación de tus scripts y sus nombres. Para esto podrías usar "in_array()" .. (o si usas consultas SQL .. la consulta SQL).

Un saludo,
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




La zona horaria es GMT -6. Ahora son las 11:34.