Desarrollo para un cliente un sitio con PHP, Mysql. El tema es que hay determinadas páginas a las que solo se puede acceder si tiene permiso la persona. He preparado una página de entrada con acceso a la DDBB para verificar que dicho usuario está dado de alta (verifico usuario/passwd). Después el problema es controlar que a estas páginas, accediendo a ellas directamente no debería pasar nadie si no ha pasado antes por la ventana de control de usuario. Ahora mismo intento controlarlo por medio de sesiones, pero tengo algunos problemas.
¿Me recomiendas alguna opción?
Respuesta de bankhacker
1
1
bankhacker, Objetivos: Trabajar como WebMaster Freelance en proyectos de...
Autenticación de zona web: Tienes dos opciones, la fácil y la difícil. La fácil es simplemente crear una zona privada por directorio, mediante el uso de htaccess, como explico más adelante. La difícil es definir una rutina común a todos los scripts, llamada por ejemplo, check_auth() que cerifique el valor de la variable $user y $pass contra la base de datos de usuarios en cada página que quieras acceso privado. Las variables $user y $pass deben ser persistentes, y definidas en la página de login. Persistentes quiere decir que son cookies o variables de sesión. Para bloquear un fichero PHP simplemente usa este código: function check_auth($usuario, $clave) { $result = query("SELECT id FROM usuarios WHERE usuario='$usuario' AND clave='$clave'"); $row = mysql_fetch_array($result); if (!(isset($row[0]))) { die("El Usuario con Nombre <B>$usuario</B> no está registrado en nuestra base de datos."); exit; } } Un ejemplo de archivo .htaccess: AuthName "Zona Restringida" AuthType Basic AuthUserFile /webroot/www/.htpasswd Require user undeterminadousuario El parametro AuthName indica un mensaje que debe ser desplegado en la ventana que solicita la autorización, AuthType siempre toma un valor Basic (unico tipo), mientras que AuthUserFile indica la ubicación del archivo que contiene los nombres y contraseñas del sistema (definido anteriormente) y la ultima linea require user importacion especifica el usuario que tendrá acceso a este directorio; inclusive este ultimo renglón puede incluir varios usuarios: require user importacion clientes.
Muchísimas gracias. No se si te comenté que andaba controlándolo por sesiones, pero no me terminaba de ir bien. Muchas gracias de nuevo.