Foros del Web » Programando para Internet » PHP »

Imagenes "absorbidas" de otras web.

Estas en el tema de Imagenes "absorbidas" de otras web. en el foro de PHP en Foros del Web. Saludos!. Bueno no se si esto ya exista o si ya fue posteado pero aqui lo dejo por si les sirve de algo. Un buen ...
  #1 (permalink)  
Antiguo 08/05/2008, 12:09
Avatar de Atomycko  
Fecha de Ingreso: diciembre-2005
Ubicación: Zapopan Jal.
Mensajes: 92
Antigüedad: 18 años, 3 meses
Puntos: 12
Imagenes "absorbidas" de otras web.

Saludos!.

Bueno no se si esto ya exista o si ya fue posteado pero aqui lo dejo por si les sirve de algo.

Un buen dia se me ocurrio que no queria que las imagenes de la web que estoy creando sean "absorbidas" o "embebidas" desde otro sitio, asi que me puse abuscar alguna solucion y me encontre con el .htaccess, ok, pero la bronca es que no se porque razon no me funciono, entonces al estar buscando la solucion a ese problema recorde que en algunos sitios la url de las imagenes son algo como src="nahd/?id=fdf456465d4fdfdf46df33dfd53df4d3df4d3gf431df54 7d3f4" y eso me desperto el ingenio resultando lo siguiente (como dije, no se si esto exista pues hay tantas funciones que uno no termina de conocerlas todas)

Crear un archivo con una funcion que me de un resultado unico, sera funcion.php
Código PHP:
<?php
function result(){
 
$date date(Ymdhi);
 
$codi md5(sha1($date));
 
/// ESTE ES UN EJEMPLO, PUEDEN HACER UN OPERACION MATEMATICA
 /// EJEMPLO 'date("h")' X 'date("y")' / 'date("i")'
 /// NOTA: SI HACEN ESTO NO USEN date("s")
 /// PORQUE USAR date()? PORQUE SIEMPRE CAMBIA
 
return $codi;
}
?>
Crear el archivo que expondra las imagenes, show_img.php
Código PHP:
<?php
if(!$_GET['sid']){
 die();
}else{
 require(
"./funcion.php");
 
$check result();
 if(
$check == $_GET['sid']){
  
$img=$_GET['img'];
  
$info explode("."$img);
  
$nombre "$info[0]";
  
$extencion "$info[1]";
  
$real "directorio/$img";
  if(
$extencion=="png"){
   
$im imagecreatefrompng($real);
   
imagesavealpha($imtrue);
   
imagepng($im);
  }
  if(
$extencion=="gif"){
   
$im imagecreatefromgif($real);
   
imagecolortransparent($im);
   
imagegif($im);
  }
  if(
$extencion=="jpg"){
   
$im imagecreatefromjpeg($real);
   
imagejpeg($im);
  }
 }else{
  die();
 }
}
?>
Y la aplicacion es la siguiente:
Código HTML:
<?php
require("./funcion.php");
$sid = result();
?><html>
<head><title></title></head>
<body>

<img src="show_img.php?img=mi_imagen.jpg&sid=<?php echo$sid;?>" width="100" height="100">

</body></html> 
Bueno pues eso es todo, espero que les sirva de algo y si tienen algun aporte para mejorarlo no duden en dejenlo.
__________________
PD: Los acentos fueron secuestrados.
  #2 (permalink)  
Antiguo 08/05/2008, 12:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Imagenes "absorbidas" de otras web.

osea... el $sid ¿expira?
  #3 (permalink)  
Antiguo 08/05/2008, 12:57
Avatar de Atomycko  
Fecha de Ingreso: diciembre-2005
Ubicación: Zapopan Jal.
Mensajes: 92
Antigüedad: 18 años, 3 meses
Puntos: 12
Re: Imagenes "absorbidas" de otras web.

Expira para el sitio de donde esta siendo embebida la imagen, esa es la idea
__________________
PD: Los acentos fueron secuestrados.
  #4 (permalink)  
Antiguo 09/05/2008, 05:47
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
De acuerdo Re: Imagenes "absorbidas" de otras web.

Me parece buena idea, pero ¿no sería más facil comprobando que la URL que llama al php que contiene la imagen sea de tu hosting?

Es decir, si tienes una imagen con un origen en un archivo php con una variable que indica la imagen:

Código HTML:
<img src="imagen.php?i=nombreimagen" width="520" height="348" border="2"> 
Los "robadores de imágenes" que quieran hacer el "hotlink" no sabrían en que carpeta está contenida la imagen y no podrían hacer un enlace dierecto a tu imagen, de modo que deberían de usarla tal y como lo has echo tu, con un origen en un archivo .php con la variable.

Bien, pues en ese archivo .php pondríamos esto:
Código PHP:
//cojemos la ULR desde la que llegan a la imagen: (bueno, al php...)
$ref=$_SERVER["HTTP_REFERER"];

//comprobamos que sea de nuestro hosting
$busco="miweb.com";   //buscamos la cadena miweb.com en la url referida

$posicion=strpos($ref$busco); //buscamos su posición

/*si no tiene posición para la cadena quiere decir que no existe la cadena 
miweb.com y por lo tanto que están llamando a este archivo
 .php desde un hosting externo al mio.*/

$image $_GET['i'];

//Hacemos un simple if...
if(!$posicion || empty($image)){
    echo 
"Imagen protegida Copiright miweb.com";
}else{ 
//si llaman a la página desde miweb.com ...

  //codigo que genera la imagen a partir de la variable $image

Yo al menos es lo que uso para prevenir hotLinks...
  #5 (permalink)  
Antiguo 09/05/2008, 09:44
Avatar de Atomycko  
Fecha de Ingreso: diciembre-2005
Ubicación: Zapopan Jal.
Mensajes: 92
Antigüedad: 18 años, 3 meses
Puntos: 12
Re: Imagenes "absorbidas" de otras web.

Saludos IMAC!
Excelente opcion, no se me ocurrio antes, muchas gracias por el aporte
__________________
PD: Los acentos fueron secuestrados.
  #6 (permalink)  
Antiguo 09/05/2008, 11:55
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Re: Imagenes "absorbidas" de otras web.

De nada ;)
Aquí todos colaboramos como podemos ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:16.