Algunos servicios de hosting gratuitos ponen reestricciones a la hora de linkear archivos o imágenes. Uno de los servicios con el que me tocó trabajar, no permitía que las imágenes y archivos alojados ahí, fueran linkeadas desde otra cuenta de la misma empresa; a raiz de esto, y gracias a las posibilidaddes de PHP, pude sortear esta reestricción.
Los que esten padeciendo una situación similar, quizá les interese esta breve explicación para engañar al servicio haciendole creer que el link es solicitado desde el mismo servicio.
Problema:
Toda referencia de afuera de la cuenta donde tenemos las imagenes y/o archivos es anulada.
Solución:
Crear un archivo dentro de la cuenta que llame a las imágenes o a los archivos y los devuelva en el formato predeterminado.
Manos a la obra
Lógica del razonamiento:

Código
<?php
//capturamos la ubicacion de la imágen
$location = $_GET['location'];
//controlamos que la imágen sea local y en una carpeta específica
//(gracias pablius)
$ver1 = strpos($location,"./imagenes/");
$ver2 = strpos($location,"http://");
if ($ver1=== false or $ver2===true)
die;
//especificiamos que la devolucion es un archivo jpg
header('Content-type: image/jpeg');
header('Content-Disposition: inline; filename="$location"');
//leemos la imágen de la ubicacion especificada
readfile($location);
}
?>
Este archivo se podria llamar imagen.php y estar en la misma cuenta que la imagen a leer y para llamar esa imagen desde otro host, tendriamos que poner:
<img src="http://hosting-imagen/imagen.php?
location=./ubicacion/imagen.jpg" alt="no se olviden del alt" />
Entonces sólo ejecutamos desde afuera el .php y este se encarga de devolvernos la imágen que le pasemos en el parametro “location”.
El siguiente concepto puede aplicarse como ya vimos para linkear un archivo cualquiera (no sólo imagen) . Sería algo asi:
<?php
$location = $_GET['location'];
header('Location:'. $location);
?>
Si quieren ver como funciona, hagan click derecho en la imágen mas arriba publicada y vean como esta referenciada.
Espero que les sirva, cualquier duda o consulta o sugerencia ya saben que tienen que hacer.










11 Comentarios
Gabriel
noviembre 12th, 2004 at 12:48 am
Una masa!!! un grande!!…mañana lo voy a probar…y te cuento que onda :)
naty
noviembre 12th, 2004 at 9:15 am
ay que buena idea….la verdad es que vos sos ya como mi maestro en estas cosas, gracias!!!
Te mando un beso y espero que andes bien
Cuando lo pruebe te cuento como me fue!
Gabriel
noviembre 12th, 2004 at 11:59 am
Lucaz, ESTUVE…probando y probando, puse el php, tal cual lo decis vos, y hago el link desde mi blog, con el respectivo direccion. pero no la muestra :s
Gabriel
noviembre 12th, 2004 at 12:00 pm
Gabriel
noviembre 12th, 2004 at 12:01 pm
Gabriel
noviembre 12th, 2004 at 12:01 pm
ja! no muestra el codigo que pego aca!
snarf
noviembre 12th, 2004 at 8:14 pm
Estos son los posts que me confirman que soy un sabio… sabio porque se que no se nada… no entiendo!!!!!!!!!!!!
Pablius
noviembre 13th, 2004 at 9:03 pm
Habria que recordar, que para mayor seguridad, hay que poner algo que proteja de que no se suban de directorio y te saquen algo de un dir que no queres. Para lo que se recomienda, poner la dirección base, como un parametro fijo.
Lucas
noviembre 14th, 2004 at 12:26 am
Correcto Pablius, eso justo estábamos hablando con Fernando. Gracias por la recomendación.
Asterion
noviembre 15th, 2004 at 9:50 am
ehh???
Todo este lío por AngelFire?
fabbry
noviembre 18th, 2005 at 9:06 am
hola, veo que manejas bien el php, y necesitaria saber si me podrias dar una manito con una idea que tengo y se me complico, si es asi, te agradecerias q me envies un mail. Gracias