En todos los navegadores si le das a un link a un archivo de texto, por defecto te lo mostrará sin presentarte opción a descargarlo, asi que debes tu seleccionarlo y copiarlo o un guardar como.
Enviando los headers al navegador, se puede hacer que el navegador no "interprete" y que haga lo que le dice el host. En este caso una web, asi seria la única forma de poder presentarle al que esta mirando la web un fichero para descargar, que simplente es un TXT.
Pero bue... el
readfile esta de más en esas lineas, si lo que estas buscando es hacer un anti-leech (que el usuario final no vea de donde descarga)...
Si esta bien hecho no lo ve ni Dios... ni con mozilla ni nada.
Este me ha sido útil durante mucho tiempo, y aun nadie ha logrado pasarlo.
Código PHP:
<?php
require("../config_sitio.php");
$rs1=mysql_query("SELECT * FROM ".$tlogs." where ip='".GetHostByName($REMOTE_ADDR)."'");
$fil=mysql_num_rows($rs1);
if ($fil>0)
{
$ADMIN[defaulturl] = "[url="http://www.tuweb.com"]http://www.tuweb.com[/url]";
$ADMIN[url_1] = "[url="http://www..com/files"]http://www.tuweb.com/files[/url]";
$desde = $HTTP_REFERER;
$pos = strpos($desde,"com");
if ($pos === false)
{
header("Location: $ADMIN[defaulturl]");
}else{
$doweb=substr($desde, 0, $pos+3);
}
if ($doweb != "[url="http://www..com"]http://www.tuweb.com[/url]")
{
header("Location: $ADMIN[defaulturl]");
}else{
$theu = "url"."_"."$site";
require("../config_sitio.php");
$rs1=mysql_query("SELECT * FROM ".$tdown." where id=".$file);
$fil=mysql_num_rows($rs1);
if ($fil>0)
{
$rs1 = mysql_query("UPDATE ".$tdown." set descargas=descargas+1 where id=".$file);
}else{
$rs1 = mysql_query("INSERT INTO ".$tdown." (id, descargas) VALUES(".$file.",1)");
}
$db = null;
$rs1 = null;
$fil = null;
header("Location: $ADMIN[$theu]/$file.zip");
}
}else{
$db = null;
$rs1 = null;
$fil = null;
echo "<script>";
echo "window.location.href='$desde';";
echo "alert('Necesitas tener un usuario del foro y estar conectado.');";
echo "</script>";
}
?>
Bue, este código lo hice un dia, para alguien que queria que la gente que se descargue sus archivos, fueran miembros de un foro.
Ya me diras si te sirve !
Saludetes.