Foros del Web » Creando para Internet » CSS »

Mostrar foto almacenada en una base de datos, pero desde la css

Estas en el tema de Mostrar foto almacenada en una base de datos, pero desde la css en el foro de CSS en Foros del Web. Amigos, una consulta, Tengo el siguiente código para mostrar una foto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original echo '<img src="ruta_del_directorio_donde_guardo_las_fotos/th' . $row [ Foto ] ...
  #1 (permalink)  
Antiguo 08/08/2011, 08:06
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Pregunta Mostrar foto almacenada en una base de datos, pero desde la css

Amigos, una consulta,

Tengo el siguiente código para mostrar una foto:

Código PHP:
Ver original
  1. echo '<img src="ruta_del_directorio_donde_guardo_las_fotos/th'.$row[Foto].'" >;

Ahora bien, ¿es posible mostrar desde la css la foto almacenada en la base de datos MySQL?

Desde la css lo he intentado de esta manera, pero sin resultados:

Código CSS:
Ver original
  1. .Foto {
  2.     background-image: url(<img src="ruta_del_directorio_donde_guardo_las_fotos/th$row[Foto]">);
  3. }

Sea dicho de paso, no uso los campos como blobs para las imágenes, no me gusta, porque hace pesada la base de datos.

Bueno, es lo que quiero hacer, a fin de darle un mayor nivel de seguridad al sitio que estoy desarrollando y, en especial, evitar que cualquier persona se apropie de las imágenes creadas por mi cliente. Este método lo he visto en uso en varios portales de noticias y revistas on line y me parece excelente.

Ahora, si es imposible, bueno, me olvido del asunto.

Espero por vuestra ayuda, de antemanos, muchas gracias!
  #2 (permalink)  
Antiguo 08/08/2011, 08:24
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años
Puntos: 253
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Buenas,

En principio, PHP es un lenguaje de que se ejecuta en el servidor y cuya salida puede ser cualquier código que el cliente entienda, no sólo HTML, sino también XML, JS, CSS... Otra cosa es que eso sea conveniente o no, yo personalmente no lo apoyo, porque generas demasiada comunicación con el servidor, pero en esto te vas a encontrar tantas gustos como personas a las que preguntes.

Ahora bien, una vez explicado esto, te diré cómo lo haría yo. Personalmente, lo pondría con una etiqueta style al principio del documento generado HTML o en el atributo style del propio contenedor de la imagen. Algo así:
Código PHP:
Ver original
  1. <style>
  2.     .Foto {
  3.         background-image: url("ruta_del_directorio_donde_guardo_las_fotos/<?php echo row['Foto']; ?>");
  4.     }
  5. </style>
O directamente en el div (si el tag es un div):
Código PHP:
Ver original
  1. <div class="Foto" style="background-image: url("ruta_del_directorio_donde_guardo_las_fotos/<?php echo row['Foto']; ?>")"></div>

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 08/08/2011, 08:28
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 13 años, 10 meses
Puntos: 24
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Creo que es posible pero no esta tan bien , va desde mi punto de vista.
Las imagenes podran ser descargadas de todas formas.
La Sitaxsis Css es Haci.
Código CSS:
Ver original
  1. background-image:url("url");
  2. background-repeat:no-repeat;
Un Ejemplo con un div no remendado.
Código HTML:
Ver original
  1. <div style="background-image:(\"pache/<?php echo $row['Foto']; ?>\");background-repeat:no-repeat;'> Contenido </div>
Espero te Sirva.
  #4 (permalink)  
Antiguo 08/08/2011, 08:47
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Hola, vgonga!

Le faltaba el $ al row después del echo. Bueno, he intentado con ambos métodos y sigue sin mostrarme la foto.

Seguiré buscando la solución, sino, bueno, tiro la esponja!

Gracias por responder y por tu ayuda, amigo!
  #5 (permalink)  
Antiguo 08/08/2011, 08:55
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Cita:
Iniciado por Lautaro_eb Ver Mensaje
Creo que es posible pero no esta tan bien , va desde mi punto de vista.
Las imagenes podran ser descargadas de todas formas.
La Sitaxsis Css es Haci.
Código CSS:
Ver original
  1. background-image:url("url");
  2. background-repeat:no-repeat;
Un Ejemplo con un div no remendado.
Código HTML:
Ver original
  1. <div style="background-image:(\"pache/<?php echo $row['Foto']; ?>\");background-repeat:no-repeat;'> Contenido </div>
Espero te Sirva.
Hola, Lautaro,

No entiendo dónde debe ir el primer código recomendado, no el div, porque estoy de acuerdo que no es lo recomendable.

Luego de colocado el style como me recomendó vgonga estoy colocando lo siguiente en un echo:

Código PHP:
Ver original
  1. echo '<span class="Foto"></span></a>';

pero sin resultado.

A todo esto, una vez vi este método en alguna parte, pero extravié el código y de veras es un método que me parece bastante seguro a la hora de evitar que los demás pirateen las fotos; claro, si alguien quiere, tengo claro que igual lo conseguirá, pero al menos no hay que ponerle la cosa tan fácil! jajaa

Sigo en esto, ¡gracias, amigos!
  #6 (permalink)  
Antiguo 08/08/2011, 08:55
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años
Puntos: 253
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Prueba con el ; del final del css:
Código PHP:
Ver original
  1. <div class="Foto" style="background-image: url("ruta/<?php echo $row['Foto']; ?>");"></div>

Y prueba poniendo una foto directamente, tiene que funcionar si o si, porque no hay otra forma de hacerlo.

Un saludo.

Edito: si lo que has probado es el primer método, asegúrate de que $row['Foto'] tenga valor en el sitio en el que haces el echo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #7 (permalink)  
Antiguo 08/08/2011, 09:08
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Cita:
Iniciado por vgonga1986 Ver Mensaje
Prueba con el ; del final del css:
Código PHP:
Ver original
  1. <div class="Foto" style="background-image: url("ruta/<?php echo $row['Foto']; ?>");"></div>

Y prueba poniendo una foto directamente, tiene que funcionar si o si, porque no hay otra forma de hacerlo.

Un saludo.

Edito: si lo que has probado es el primer método, asegúrate de que $row['Foto'] tenga valor en el sitio en el que haces el echo.
Tampoco, no pasa nada. Bueno, voy a continuar por un rato más, llevo horas en esto y, a decir, verdad, ya estoy un poquitín amoscado con el asunto; estoy a punto de tirar la esponja!
  #8 (permalink)  
Antiguo 08/08/2011, 09:13
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años
Puntos: 253
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

A ver, no te desesperes. Eso tiene que funcionar si o si, porque se hace así de hecho.

Prueba a poner la ruta directamente, sin sacar de la consulta con alguna imagen que sepas seguro que está en esa ruta. Si tampoco sale, es que estás poniendo la ruta mal:
Código PHP:
Ver original
  1. <div class="Foto" style="background-image: url("ruta/imagen.ext");"></div>

También prueba a imprimir en la línea anterior $row['Foto'], a ver si realmente lleva el dato que crees tú que lleva. Si no imprime el dato que tú quieres, será que no está definido $row en ese punto del documento o que en la base de datos no está el dato que crees que está:
Código PHP:
Ver original
  1. <?php echo $row['Foto']; ?>
  2. <div class="Foto" style="background-image: url("ruta/imagen.ext");"></div>

Coméntame los resultados, que esto lo arreglamos por mis...

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #9 (permalink)  
Antiguo 08/08/2011, 09:43
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Amigo vgonga,

Cuando dejo el echo como lo tengo, esto es:

Código PHP:
Ver original
  1. echo '<img src="uploads/portada/th'.$row[Foto].'" >

Me muestra la imagen sin problemas, pero adiciono con la misma ruta y todo el div que indicas ... y nada. ¿Se supone que de resultar debiera haberme mostrado replicada la foto, en este caso, la miniatura??

A ver si sacamos esto, mira que estuve navegando en posteos antiguos y parece que es un tema recurrente, pero ignoro si a alguien le resultó. Voy a investigar estos sitios donde al parecer hay soluciones a granel! Y si no resulta ... bueno ...
  #10 (permalink)  
Antiguo 08/08/2011, 10:27
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años
Puntos: 253
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Si te funciona eso que has puesto ahí, no es por tema de HTML ni de PHP. Es por tema de CSS.

Muéstrame completo el código del tag donde lo quieres insertar (es decir, el span o el div), que verás como es eso.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #11 (permalink)  
Antiguo 08/08/2011, 10:41
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Si preguntaras en el foro de CSS te dirian que faltan los atributos de width y heigth al tamaño de la imagen para que se muestre como debe ser; claro, esto siempre y cuando uses una etiqueta de bloque como <div>, si usas <span> tambien debes especificar display:block;
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 08/08/2011, 10:51
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años
Puntos: 253
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Por ahí iban mis tiros, jejeje...

Sólo con la imagen no te vale, porque si la tienes en un div o en un span y no tienen nada dentro, no se muestra, porque tiene alto y ancho a 0.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #13 (permalink)  
Antiguo 08/08/2011, 11:18
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Sí, pensé en lo mismo, pero ni así. Bueno, a estas alturas estoy trabajando con un style.php donde van los atributos de estilo y toda la vaina ...

En efecto, creo que mi dilema va por el lado de cómo rayos mostrar la dichosa imagen. Se supone que si dejo un solo parámetro,el otro (ancho o alto) lo reconoce en forma automática el sistema.

Bueno, el echo es:

Código PHP:
Ver original
  1. echo '<div class="Foto" width="90"></div>';

y el style.php

Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/css');
  3. echo ".header {";
  4. echo '.background: url("uploads/portada/th'.$row[Foto].'") no-repeat"}';
  5. echo '#Foto{
  6.         background-image: url("uploads/portada/th$row[Foto]"}';
  7.  
  8. ?>

Pero ... ¡nada pasando!

En fin, paciencia, que Roma no se hizo en un día! jajajaja

Última edición por Dragon_Mandarin; 08/08/2011 a las 12:03
  #14 (permalink)  
Antiguo 08/08/2011, 12:04
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
De acuerdo Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Lo he conseguido y más tarde, cuando todo quede OK, publico los códigos respectivos para que quede acá como recurso a utilizar a quien le interese.

Tengo que pulir detallitos no menores, pero ya lo que he logrado es un avance fundamental.

Saludos!

Última edición por Dragon_Mandarin; 08/08/2011 a las 15:22
  #15 (permalink)  
Antiguo 08/08/2011, 16:34
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Bueno, como les señalaba, he creado un style.php, cuyo código es:

Código PHP:
Ver original
  1. <?php
  2. header ('Content-Type: text/css; charset=utf-8');
  3. require ('includes/connect.php');
  4. $resultado = mysql_query("SELECT * FROM nombre_de_la_tabla ORDER BY id",$connect);
  5. while($row = mysql_fetch_array($resultado))
  6.     {
  7.        echo '#Foto{
  8.         background-image: url("ruta/imagen/th'.$row[Foto].'");
  9.         background-repeat: no-repeat; border: 3px solid #F90;
  10.     float: left;
  11.     height: 150px;
  12.     margin-top: auto;
  13.     margin-bottom: 15px;
  14.     width: 150px;
  15.     margin-right: 15px;
  16.     margin-left: 0px;
  17.     background-attachment: scroll;
  18.     background-repeat: no-repeat;
  19.     background-position: center center;
  20.    
  21.     }';
  22.     }
  23. mysql_free_result($resultado)
  24. ?>

Por cierto, es fundamental colocar la línea:

Código PHP:
Ver original
  1. header ('Content-Type: text/css; charset=utf-8');

En caso contrario, el php no interpretará el style.php como css, sino como un documento php común y corriente.

Y luego, en el index.php o cualquier donde ustedes quieran mostrar una foto y su texto, en uno de los ecos correspondiente a la imagen o foto, colocan ésto:

Código PHP:
Ver original
  1. echo '<div id="Foto"></div>';

Y estamos, queda de lo más bien!! Cualquier persona que quieran piratear la foto, ahora le será sumamente difícil y si agregan un código javascript que anule el click del botón derecho del ratón, mucho mejor!

Bueno, amigos, ahí lo dejo por si les sirve y a cualquier otra persona del foro o navegante que se arrime a estas costas de Foros del Web!

Ah!! Y muchas gracias por vuestra participación y valiosa ayuda: vgonga, Triby y Lautaro_eb!!!

Bye
  #16 (permalink)  
Antiguo 09/08/2011, 05:00
Avatar de Batan  
Fecha de Ingreso: septiembre-2010
Ubicación: Madrid
Mensajes: 408
Antigüedad: 13 años, 6 meses
Puntos: 63
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Mmm, pero cuando alguien use la herramienta de ver código de fuente... y vea la ruta php, podria ver todo el codigo verdad?
  #17 (permalink)  
Antiguo 09/08/2011, 06:08
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Cita:
Iniciado por Batan Ver Mensaje
Mmm, pero cuando alguien use la herramienta de ver código de fuente... y vea la ruta php, podria ver todo el codigo verdad?
Nop, de hecho lo verifiqué varias veces y ni modo, nada de ruta de la foto ni nada de nada. Es lo que quería. En caso contrario, no me habría tomado la molestia de horas y horas de programación, ensayos y pruebas ¿para que al final la ruta donde está almacenada la foto se viese igual? Afortunadamente, eso no ocurre y el documento style.php también está debidamente protegido.

Saludos, Batan!
  #18 (permalink)  
Antiguo 09/08/2011, 06:13
Avatar de Batan  
Fecha de Ingreso: septiembre-2010
Ubicación: Madrid
Mensajes: 408
Antigüedad: 13 años, 6 meses
Puntos: 63
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Vaya, pues igual es por ser PHP, yo lo hago en ASP y vamos te muestra todo el código tanto ASP como CSS.

Que suerte teneis... xD

Saludos
  #19 (permalink)  
Antiguo 09/08/2011, 06:25
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Cita:
Iniciado por Batan Ver Mensaje
Vaya, pues igual es por ser PHP, yo lo hago en ASP y vamos te muestra todo el código tanto ASP como CSS.

Que suerte teneis... xD

Saludos
Mis respetos por quienes programan en .asp, pero la verdad es que prefiero mil veces el php. No tengo por dónde perderme.

Saludos, amigo Batan!
  #20 (permalink)  
Antiguo 09/08/2011, 06:34
Avatar de Batan  
Fecha de Ingreso: septiembre-2010
Ubicación: Madrid
Mensajes: 408
Antigüedad: 13 años, 6 meses
Puntos: 63
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Bueno yo era más de diseño, si empece a programar con ASP fue para más o menos adentrarme en el mundo de la programación estructurada. Y con lo básico de ASP me quedé para empezar con ASP.NET, que es tan potente como PHP.
Lo que me hace pensar que debo hacer esto de los estilos en ASP.NET en cuanto tenga un rato.
  #21 (permalink)  
Antiguo 09/08/2011, 08:58
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Te compendo, Batan. Me sucedió algo similar cuando tuve que meterme en el paradigma de los sitios dinámicos, con consulta a base de datos. Inicié mis andaduras por el .asp, pero luego, al descubir el mundo del php+MySQL y sus maravillosas posibilidades y extraordinaria potencia y flexibilidad -además de tener una baja curva de aprendizaje-, abandoné para siempre la otra plataforma.

Salu2!
  #22 (permalink)  
Antiguo 09/08/2011, 09:59
Avatar de Batan  
Fecha de Ingreso: septiembre-2010
Ubicación: Madrid
Mensajes: 408
Antigüedad: 13 años, 6 meses
Puntos: 63
Respuesta: Mostrar foto almacenada en una base de datos, pero desde la css

Cita:
Iniciado por Dragon_Mandarin Ver Mensaje
Nop, de hecho lo verifiqué varias veces y ni modo, nada de ruta de la foto ni nada de nada. Es lo que quería. En caso contrario, no me habría tomado la molestia de horas y horas de programación, ensayos y pruebas ¿para que al final la ruta donde está almacenada la foto se viese igual? Afortunadamente, eso no ocurre y el documento style.php también está debidamente protegido.

Saludos, Batan!

Un pantallazo a la foto? Ante eso si no se puede hacer nada
Pero claro no quedará tan definida la foto.

Saludos.

Etiquetas: foto, mysql, php, almacenadas
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 01:37.