Proteção com arquivo .htaccess

  • Autor Autor empardopo
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
E

empardopo

Alfa
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
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
Inserir CODE, HTML ou 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

Inserir CODE, HTML ou 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
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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?
 
Bueno he probado a cambiar la ruta del fichero logs.txt que debería escribir dejando la línea así
Inserir CODE, HTML ou 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
Inserir CODE, HTML ou 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?
 
Voltar
Topo