Foros del Web » Programando para Internet » PHP »

Denegar acceso a paginas privadas

Estas en el tema de Denegar acceso a paginas privadas en el foro de PHP en Foros del Web. Hola, estoy haciendo un script que mediante variables de seciones un suario puede loguearse. El tema es que hay secciones que si el usuario no ...
  #1 (permalink)  
Antiguo 15/03/2004, 07:59
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Denegar acceso a paginas privadas

Hola, estoy haciendo un script que mediante variables de seciones un suario puede loguearse.

El tema es que hay secciones que si el usuario no tiene permiso, no debe poder entrar.

Yo hice un script que se llama barrera.php que mira las dos variables globales, una que es $gbl_usuario y otra que es $gbl_acceso.
Haciendo una logica de comparaciones, hace que si el usario no esta logueado o no tiene los permisos correspondientes, lo saca de la pagina.

Este script lo incluyo en todas mis paginas.

EL tema es que si bien el script funciona, la pagina es mostrada por el servidor al cliente. Lo que tengo que lograr es negarle acceso al usuario ANTES de que baje la pagina.

si quieren ver un ejemplo, aca esta

http://clan-arg.com.ar/fdsoft/clan-a...s/mapsyesc.php

gracias por todo.
__________________
| Cabeza De Raton |
  #2 (permalink)  
Antiguo 15/03/2004, 08:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La validación que hagas de tus variables de sesión que creas (supongo) cuando tu usuario se autentificó debes hacerlas en todas las páginas y scripts que requieran autentificación.

Si requieres redireccionar si tu validación de tus variables de sesión no están creadas (=no se autentificó tu usuario) .. redirecciana vía PHP no con javascirpt/meta de refresh como "parece" que lo haces con:

Código PHP:
header("Location: login.php");
exit; 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 15/03/2004, 08:26
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Muchas gracias, lo voy a provar.
__________________
| Cabeza De Raton |
  #4 (permalink)  
Antiguo 15/03/2004, 08:32
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Puedo poner esas dos lineas dentro de una funcion ?
O sea, puedo salir desde dentro de la funcion ?
__________________
| Cabeza De Raton |
  #5 (permalink)  
Antiguo 15/03/2004, 08:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, puedes ponerla en una función ...

El "header" (con el Location) indica al "cliente" que cambie la página en ese instante y el exit; indica a PHP que pare la ejecución del script ene se momento.

Por ende, DEBES poner esa validación de tus variables de sesión y/o llamada a tu función de validación -antes- de cualquier HTML que muestres en tu página ...

Ejemplo:

Código PHP:
<?
include (....);
// procesos puramente PHP si se requieren .. (sin salida).... etc

aquí validas ... con la llamada a tu función tal($parámetros).
?>
<html>
y resto de tu página que se ha de mostrar si la validación es correcta ...
</html>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 15/03/2004, 08:38
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
es cierto, lo hacia on Java y eso conceptualmente esta muy mal, porque lo hace en el cliente.
__________________
| Cabeza De Raton |
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 20:50.