Foros del Web » Programando para Internet » PHP »

sobre Autentificator de Cluster

Estas en el tema de sobre Autentificator de Cluster en el foro de PHP en Foros del Web. Quisiera saber cómo hago para autentificar usuarios con Autentificator_v201 si mis páginas cargan así: Código PHP: include ( "cabecera.php" ); include ( $body ); include ( "footer.php" );  ...
  #1 (permalink)  
Antiguo 25/10/2003, 01:45
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Pregunta sobre Autentificator de Cluster

Quisiera saber cómo hago para autentificar usuarios con Autentificator_v201 si mis páginas cargan así:
Código PHP:
include ("cabecera.php");
include (
$body);
include (
"footer.php"); 
Donde $body es la página que carga en el cuerpo, y ya se definió antes con un switch ($id). Debería poner este código al inicio de mi página...
Código PHP:
<?
require("aut_verifica.inc.php");
$nivel_acceso=10
if (
$nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
?>
pero no podrá redireccionarme con los mensajes de error porque la función "header("location...)" ya no servirá dado que se cargó antes todo el script "cabecera.php"
¿Cómo puedo hacer?

Por cierto, el autentificador de Cluster está buenísimo y funciona muy bien. Lo pueden obtener aquí: http://phpcluster.host.sk/scripts/autentificator/

Saludos
  #2 (permalink)  
Antiguo 25/10/2003, 22:20
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Alguna idea amigos?
  #3 (permalink)  
Antiguo 25/10/2003, 22:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Puedes hacer várias cosas .. pero, en principio la estructura es como se menciona en autentificator.

Debes usar el código que ahí muestras (de atutentificator) en tus páginas que requieran autentificación antes de tus "include" que montas tu "plantilla" ..

Si la validación es correcta, autentificator dejará "pasar" el flujo del código y se armará tu código que llamas con tus include() para montar tu página ...

Si no es válida la autentificación .. se redirecciona a la página que contiene tu formulario (la que lo llamó .. ) y si el código de autentificator (el que muestras) lo sigues incluyendo antes de tus include() .. seguirá funcionando correctamente la validación y el redireccionamiento ..

Sólo tienes que usar el código que se menciona en la documentación para mostar el mensaje de error donde quieras usarlo. Ese código yo no es necesario que esté antes/despues/o entre tu própio código ..

Recuerda que PHP viene de "Pre-procesos Hypertext ..." es decir, .. Primero es PHP quien evalua sus estructuras de control .. sus variables .. y de todo eso se va "armando" tu HTML o resto de código que envies al cliente. Por ende, si (como el ejemplo) tienes un condicional (estructura de control) "IF" que dice: "si algo sale mal -> Redirecciona"; a "PHP" no le importa nada si has armado tu HTML de tu página o no .. pues el fin de todo esto es "Abandonar" está página (script) y redireccionar a otra, pero .. si todo sale bien (pasa el IF ..) ahí si que PHP ha de "componer" su HTML/javascript/etc que corresponda en función al resto de estructuras de control (no sólo IF, .. bucles .. etc) que tengas y así definas en tu programación ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 25/10/2003, 22:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Se me olvidó otro comentario ..

Si las páginas que llamas en tu "$body" requieren autentificación por si sólas como medida de seguridad (si llamases directamente a una de esas páginas) .. Tendrías que usar las variables que tienes a tu disposición de sessión $_SESSION para armar tu condicional tipo:

Código PHP:
if (!isset($_SESSION['usuario_login']){
die (
"No se permite el acceso directo a esta página");

Sólo eso .. no hace falta iniciar sesiones (session_start() .. ) ni redireccionar.

Si se llama correctamente al script por tu "index.php" o como lo llames al script que llama a tus include(cabecera ..) y todo el resto incluido la llamada a aut_verifica.inc.php de Autentificator .. ese script ya contiene session_start().

Por lo demas .. si hacen eso (accede directamente al script) ya sería una acción "adrede" y no un error involuntario como puede ser al autentificarse y equivocarse con su passwor .. en ese caso es recomendable redireccionar al formulario de "login" .. pero en ese caso, con un "aviso" y terminar el script (ejecución) que es lo que hace die() .. sobra. Si apesar de eso quisieras redireccionar, podrías hacerlo igualmente con "header()" .. Para esta situación concreta, tu script no tendría nada de "HTML" por encima ya que no sería llamado bajo tu "index" ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 27/10/2003, 22:56
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Pregunta Pero...

Justamente mi duda era respecto a tu segundo mensaje de respuesta. Y algo así ya había pensado resolver. Pero tengo una duda al respecto:

Digamos que un usuario registrado se autentifica. Entonces inicia una sesión. Pero su nivel de acceso no es suficiente para entrar a la página "restrix.php" que carga así:
Código PHP:
<?
require("aut_verifica.inc.php");
$nivel_acceso=10
if (
$nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}

include (
"header.php");
include (
"script_restringido.php");
include (
"footer.php");
?>
Según lo que me dices. Para evitar incursiones "adrede", debería verificar en "script_restringido.php" si se ha iniciado una sesión. Pero éste usuario "malintencionado" (al estilo parche de windows) sí ha iniciado una sesión.. entonces: ¿Puede acceder directamente al script?. Lo que no me queda claro es si la sesión se destruye sola (sin necesidad de utilizar el scrpt de salir). ¿Es necesario hacer otra verificación sobre el nivel de acceso dentro del script?

algo así:
Código PHP:
if (!isset ($_SESSION['usuario_nivel'])<=$nivel_acceso ){
die (
"mensaje de error...")

Espero que se entienda mi pregunta.

Saludos
  #6 (permalink)  
Antiguo 28/10/2003, 08:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, sería correto. Validar no sólo la existencia de la variable de sesión sino su nivel de acceso si corresponde.

Código PHP:
if ($_SESSION['usuario_nivel']  <=$nivel_acceso ){
die (
"mensaje de error...")

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 29/10/2003, 00:16
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Muchas gracias por responder Cluster!... Voya probar ahora mismo...

Saludos
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 21:43.