Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Crear carpeta web privada

Estas en el tema de Crear carpeta web privada en el foro de PHP en Foros del Web. Buenas, haciendo un álbum web privado es decir, los usuarios que quieran acceder a dicho álbum deben introducir una contraseña para visualizarlo, me surgió el ...
  #1 (permalink)  
Antiguo 09/07/2014, 10:06
 
Fecha de Ingreso: julio-2014
Mensajes: 4
Antigüedad: 9 años, 9 meses
Puntos: 0
Crear carpeta web privada

Buenas,

haciendo un álbum web privado es decir, los usuarios que quieran acceder a dicho álbum deben introducir una contraseña para visualizarlo, me surgió el siguiente problema:

¿Como puede hacer para que las imágenes solo sean visibles desde la web y no desde la url directa?
Con el fin, que solo el que tenga permisos pueda verlo.


Saludos y graciass
  #2 (permalink)  
Antiguo 09/07/2014, 10:50
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Crear carpeta web privada

Bueno se me ocurren dos posibles soluciones para lo que quieres hacer:

La primera y mas recomendable es poner la carpeta que quieres proteger fuera de tu carpeta raiz, es decir fuera de public_html y cuando las llames desde la pagina lo hagas mediante PHP así puedes hacer varias verificaciones antes de mostrar la imagen. Es como lo hacen sistemas como Moodle.

La otra opcion es bloquear tu carpeta mediante .htaccess y buscar scripts para protegerte del hotlinking.
  #3 (permalink)  
Antiguo 09/07/2014, 10:57
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Crear carpeta web privada

Te dejo un enlace a un artículo que encontré hace tiempo para configurar un .htaccess, en el que vienen un montón de opciones, lo mismo ahí encuentras la solución a lo que buscas.
Enlace


Se me acaba de ocurrir una solución aunque tienes que terminar de implementarla en tu proyecto (limitando el acceso al script con usuarios y tal.):
1º Creas un archivo .htaccess en la carpeta de imágenes con el siguiente contenido:
Código:
deny from all
2º Creas un archivo que se encargaría de cargar las imágenes por ejemplo carga.php con el siguiente contenido:
Código PHP:
$image $_GET['Img'];
$img_content file_get_contents($image);
$im imagecreatefromstring($img_content);
// Para saber el tipo de imagen por si lo necesitamos
header("Content-type: image/jpeg");
imagejpeg($im);
imagedestroy($im); 
Bien y ahora en la página en la que quieras mostrar la imagen en el <img src=""> llamas a ese archivo pasandole la ruta de la imagen.

Ejemplo funcionando: Ejemplo
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net

Última edición por bookmaster; 09/07/2014 a las 11:28
  #4 (permalink)  
Antiguo 09/07/2014, 15:44
 
Fecha de Ingreso: julio-2014
Mensajes: 4
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Crear carpeta web privada

La opción de bookmaster, se adapta a lo que buscaba.

Mi problema era que cuando denegaba el acceso por .htacces no tenia forma de ver la imagen porque intentaba hacerlo directamente con la etiqueta img y no desde funciones de php.

Muchisimas gracias a los dos.

Saludos
  #5 (permalink)  
Antiguo 09/07/2014, 16:44
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Crear carpeta web privada

Me alegro que te sirva ;)
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net

Etiquetas: directorio, htaccess, img, privado
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 23:58.