Protección con fichero .htaccess

empardopo Seguir

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
16 Jun 2013
Mensajes
29
Buenas.

He protegido con usuario y contraseña una carpeta en mi servidor mediante el uso del fichero .htaccess.
Digamos que la ruta es /var/www/usuario y el contenido del fichero .htaccess es el siguiente
Insertar CODE, HTML o PHP:
AuthName "Solo usuarios autorizados"
AuthType Basic
require user usuario
AuthUserFile /var/www/usuario/.htpasswd
AuthGroupFile /www.null
ErrorDocument 401 /var/www/usuario/error401.php
ErrorDocument 403 /var/www/usuario/error401.php

El caso es que quiero capturar la IP y fecha en la que alguién accede. Tengo dos opciones que ponga usuario y password correctos o bien que pulsen en el botón cancelar.
Cuando pulsan en el botón cancelar (no sé si me equivoco) aparece el error 401 en el título de ahí que hay intentado controlar dicho error con la instrucción ErrorDocument.
El contenido del fichero error401.php (lo uso también para el 403) es el siguiente

Insertar CODE, HTML o PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<img src="/Pictures/chuck-norris-2.jpg" width="926" height="1070" />
<?php
$ip = $_SERVER['REMOTE_ADDR']; //IP
$meses = array('enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'); //Meses
$nombre = 'logs'; //Nombre de archivo
$dia = date('d'); //Dia
$mes = date('m') - 1; //Mes
$ano = date('Y'); //Año
$hora = date('h:i:s'); //Hora
$file = fopen($nombre.'.txt', 'a+'); //Abrimos archivo
fwrite($file,  'La IP '.$ip.' accedio el '.$dia.' de '.$meses[$mes].' del '.$ano.' a las '.$hora."\r\n"); //Guardamos información
fclose($file);//Cerramos archivo
?>
</body>
</html>

Bueno, simplemente se trata de mostrar una imagen en pantalla y de que se cree un fichero de texto con la ip y la fecha. Esto último es una prueba antes de cambiarlo para que se introduzca en una base de datos (es por aprender).

El tema es que siempre obtengo el siguiente error
Authorization Required

This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

¿Se os ocurre que puede estar mal?

Muchas gracias por adelantado
 

Kobra17

Dseda
Verificado por Whatsapp
Desde
13 Abr 2013
Mensajes
1.046
A lo mejor es una tontería, pero la suelto. Quieres crear o acceder a un archivo con la Ip y fecha en la misma carpeta donde le estas negando el acceso. ¿puede que sea el error?
 

empardopo

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
16 Jun 2013
Mensajes
29
Bueno he probado a cambiar la ruta del fichero logs.txt que debería escribir dejando la línea así
Insertar CODE, HTML o PHP:
$file = fopen('/var/www/'.$nombre.'.txt', 'a+'); //Abrimos archivo
fwrite($file,  'La IP '.$ip.' accedio el '.$dia.' de '.$meses[$mes].' del '.$ano.' a las '.$hora."\r\n"); //Guardamos información
fclose($file);//Cerramos archivo

y da el mismo error.

Es más he comentado las tres líneas siguientes
Insertar CODE, HTML o PHP:
//$file = fopen('/var/www/'.$nombre.'.txt', 'a+'); //Abrimos archivo
//fwrite($file,  'La IP '.$ip.' accedio el '.$dia.' de '.$meses[$mes].' del '.$ano.' a las '.$hora."\r\n"); //Guardamos información
//fclose($file);//Cerramos archivo

y sigue mostrando el mismo error.

Yo entiendo que esto se puede hacer verdad?
 
Arriba