Foros del Web » Programando para Internet » PHP »

La mejor manera de mostrar una imágen

Estas en el tema de La mejor manera de mostrar una imágen en el foro de PHP en Foros del Web. Hola a todos. He estado buscando en el foro, sobre el tema de las imágenes. Hay un hilo sobre una galería de imágenes muy interesante. ...

  #1 (permalink)  
Antiguo 09/04/2005, 06:19
Avatar de ortiz  
Fecha de Ingreso: septiembre-2004
Mensajes: 154
Antigüedad: 19 años, 6 meses
Puntos: 0
La mejor manera de mostrar una imágen

Hola a todos.

He estado buscando en el foro, sobre el tema de las imágenes. Hay un hilo sobre una galería de imágenes muy interesante. Pero lo que yo querría saber, bueno, mejor, lo que quiero es que me aconsejeis

Tengo una BD MySql, donde añado notícias y tal. Pero si yo, en el cuerpo de una de esas notícias, quiero también añadir imágenes. ¿Cómo lo debo hacer? ¿Creando algún campo en la BD, que guarde las imágenes?¿He de usar alguna aplicación pre-fabricada ( no he usado jamás una)? Hablo de mostrar a lo sumo 10 imágenes en una notícia, + o -

Y a la hora de mostrarlas,¿uso tablas?

Yo sólo quería ponerlas todas en línea, sin usar tablas. Pero habiendo leído a la gente, quizá, ya me pongo y lo hago algo más organizado.

Gracias!

Última edición por ortiz; 09/04/2005 a las 11:20
  #2 (permalink)  
Antiguo 09/04/2005, 11:15
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Código PHP:
<!--Para subir las imagenes mediante HTTP Solo debes tener en cuenta de poner en el la etiqueta <form> enctype="multipart/form-data"
esto es lo que le permite al formulario subir archivos de datos, en nuestro caso imágenes-->
<form name="insertar" action="tuarchivo.php o el mismo script con phpself*" method="POST" enctype="multipart/form-data">
<tr><td><b>TÍTULO:</b></td><td><input type="text" name="titulo" size="60"></td></tr>
<tr><td><b>COPETE:</b></td><td><input type="text" name="copete" size="60"></td></tr>
<tr><td><b>NOTA:</b></td><td><textarea name="nota" cols="46" rows="10"></textarea></td></tr>
<tr>
<!--Aquí veras q el input type q utilizamos es "file", esto mostrará un boton de "examinar" a tus usuarios, con éste podrán buscar en su HD la imagen a subir. En caso de q quieres subir varias imágenes a la vez debes poner cuantos <input type="file"> quieras, pero debes cambiarle el nombre.-->
<td><b>IMAGEN:</b></td><td><input type="file" name="img1" size="44"></td></tr>
<tr><td><b>COPETE 1º IMAGEN:</b></td><td><input type="text" name="copete_img1" size="60"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="INGRESAR INFORMACIÓN"><input type="hidden" name="fecha_ingreso" value="".$fecha_valida.""></td></form></tr>
<!--El resto no varía, solo q yo, por costumbre paso un hidden (dato oculto) con la fecha de ingreso de la imagen, esto lo puedes hacer con la variable date() de PHP. Un ejemplo claro sería-->
<?
$fecha_valida 
date(Ymd);
echo 
$fecha_valida;
//esto tendría una salida similar a esta
//20050317
//(año 2005, mes 03 día 17), lo utilizo así para poder, en caso de necesitarlo ordenar las imágenes por fecha
?>
<!--OK, en el form le habiamos dado como action="tuarchivo.php", en ese archivo necesitaremos algo más o menos así para tratar las imágenes que el usuario ha subido-->
<?
if($_FILES["img1"]["name"] == ""){
    
$img1 "";
    
$ruta1 "";
    }else{
    
$img1 $_FILES["img1"];
    
$prefijo time();
    
$url "/galeria/2005/";
    
$directorio $_SERVER['DOCUMENT_ROOT'].$url;
    
$ruta1 $directorio.$prefijo.$img1["name"];
    if (
move_uploaded_file($img1['tmp_name'],$ruta1)){echo "El archivo ha sido cargado correctamente.<br>/n"
    }else{echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.<br>/n";
       
$img1['userfile']['error'];}
}
?>
<!--¿Q carajo hace esto? bueno ahí vamos, el primer if solamente comprueba q el usuario haya subido una imagen, en caso de no q no haya subido una la varible $img1 no contendrá nada y la variable $ruta1 también quedará vacia (esto será util para MySQL ya te lo explicaré). En caso contrario (q el usuario si haya subido una imagen) la variable $img1 = $_FILES... es solo para simplificar y no tener q escribir todo el tiempo $_FILES.... A la variable $prefijo le damos como dato un time(), es decir la fecha del momento de subir el archivo en timestamp* unix. En la variable $url debes definir la carpeta donde se alojarán tus imágenes. $directorio toma la dirección real de tu sitio (es decir c:/apache/hdocs/tuservidor/tusitio, a la q le agregamos (con el punto .) la variable $url, para q quede así c:/apache/hdocs/tuservidor/tusitio/galeria/2005/, me sigues? OK
La variable $ruta1 toma todo lo anterior (es decir c:/apache/hdocs/tuservidor/tusitio/galeria/2005/) y le suma el time()y el nombre de la imagen, entonces quedaría así "c:/apache/hdocs/tuservidor/tusitio/galeria/2005/12354896miimagen.jpg" el número 12345896 es el timestamp ¿Porq esto? con eso evitamos q un usuario, por ej. suba una imagen "suimagen.jpg", luego otro de tus visitantes sube una imagen con el nombre "suimagen.jpg", ¿q pasaría? se sobreescribiría la primera imagen, con lo q el primer usuario no quedaría contento al visitar tu sitio y no encontrar la imagen q subio días atrás.
Seguimos, el if(move_uploaded.... mueve la imagen q PHP guardó en una carpeta temporal** y con la variable $ruta1 le indicamos donde va a guardarla con el echo comprobamos q la imagen fue subida con éxito, en caso contrario nos devolvera un error del porq no ha subido la imagen.
** la carpeta temporal esta definida en el archivo de configuración de PHP (php.ini), si tienes acceso a él fijate si esta definida (busca upload). En caso de tener un servidor linux, deberás darle permiso 777 (escritura/lectura) a la carpeta donde guardaras tus imágenes. Windows hace lo q se le cante...-->

<!--Bien, ya hemos creado el formulario para el ingreso de datos e imágenes y hemos subido las imágenes al servidor un poco de mysql nos vendría bien-->
<?
<!--En el mismo archivo (tuarchivo.phpy luego de el script anterior deberías ingresar los datos a la DB-->
mysql_query("INSERT INTO nombreDB (titulo,copete,nota,img1,copete_img1) VALUES('$titulo','$copete','$nota','$ruta1','$copete_img1','$fecha_ingreso')") or die(mysql_error());
?>
<!--Esto es simple, recuerda q antes debes ingresar un mysql_connect q te conviene guardar en un archivo a parte y agregarlo con un include() (ej. include(misdatos.php); a todas las páginas q soliciten datos de la DB (ejemplo al final del archivo para no perder el hilo), lo único q te puede parecer raro es q en vez de guardar la imagen en la DB (algo inapropiado y q hace q las DB aumenten considerablemente de tamaño y se vuelvan lentas e inoperables) guardamos la ruta a la imagen ($ruta1). Bien, aquí termina el script tuarchivo.php, ahora vayamos a como mostrar las imágenes-->
<!--Crearemos otro archivo q llamaremos redimensionar.php, pero primero lo primero, en la página donde quieras mostrar las imágenes por ej. misimagenes.php deberemos realizar lo siguiente:
1º una consulta* a la DB para sacar los datos (lo que nos importa a nosotros es el campo q yo he llamado img1 que tiene el path ($ruta1) donde está la imagen), bien, teniendo esto en claro las img deberas llamarlas de la siguiente manera-->
<?
echo "<img src=\"http://tusitio/redimensionar.php?imagen=".$row['_img1']."&ancho=100&calidad=80\" width=\"100\" border=\"0\" align=\"left\">";
?>
<!--Aquí te daras cuenta q pasamos al script redimensionar.php algunos datos, en imagen va el path de la imagen a "retocar" en ancho el ancho q quieras que sea el preview (thumbails - imagen pequeña creada de la original). En calidad puede ir de 0 a 100, te recomiendo 80
en redimensionar.php pondremos lo sig:-->
<?
include("form.php"); //este include contiene un foreach para registrar y poder utilizar todos los datos q son enviados a los scripts, ya sea mediante POST, GET o FILE. Al final de este embrollo lo tienes...
$imagen $_GET["imagen"]; //simplifico para no usar $_GET[... y todo el barullo para escribir
$ancho $_GET["ancho"]; //lo mismo
$alto $_GET["alto"]; //lo mismo
$calidad $_GET["calidad"]; //de 1 a 100, simplifico
if(substr($imagen,-3) == "jpg" || substr($imagen,-3) == "JPG" || substr($imagen,-4) == "JPEG"){
$src_img imagecreatefromjpeg($imagen); //aqui revisa si la imagen es JPG (php trabaja con jpg y gif) si es jpg se dispone a, en la variable $src_img, crear la imagen
}
elseif(
substr($imagen,-3) == "gif" || substr($imagen,-3) == "GIF"){
$src_img imagecreatefromgif($imagen);//aqui revisa si la imagen es GIF
}else{header("Location: $imagen");//si no es ninguno de los dos (JPG o GIF) devuelve la imagen en su versión original
}
$ancho_original imagesx($src_img); //extrae el ancho original de la imagen
$alto_original imagesy($src_img); //extrae el alto original de la imagen
if(!$alto){
$alto = ($ancho $ancho_original) * $alto_original;
}
if(!
ancho){
$ancho = ($alto $alto_original) * $ancho_original;
}
if(!
$calidad){
$calidad 80;
}
$dst_img imagecreatetruecolor($ancho,$alto);//todos los if anteriores sirven para mantener la proporsión de la img, por eso solo le pasamos el ancho, con simple matemática sacamos el alto q le corresponde (esto es para q la imagen no se distorsione o vea muy estirada)
imagecopyresampled($dst_img$src_img,0,0,0,0,$ancho,$alto,$ancho_original,$alto_original);//crea la copia de la img, dejalo así q funcionara*
header("Content-Type: image/jpeg");//devuelve a la página q lo llamo, en nuestro caso misimagenes.php, la img creada
imagejpeg($dst_img,'',$calidad);
imagedestroy($src_img);//destruye la img y libera la memoria utilizada
imagedestroy($dst_img);//idem anterior
?>
<!--Bien, lo complicado ya está, ahora lo facil en misimagenes.php deberías poner un link q te abra en una nueva pág la imagen original en cada thumbails q muestres, sencillo <a href="<=$row['img1'] target="_blank"><img src...></a>"-->

<!--ACOTACIONES VARIAS: Para usar esto debes tener PHP instalado con las librerías GD (el 99,9% de los servidores lo tienen), si tu eres el servidor, busca php.ini y en él "extensions", por ahí debería haber algo asi "extension=php_gd2.dll"-->

<!--
Siempre los datos q pasan con el method="POST" son recibidos perfectamente por el script, sin necesidad de mucho, pero por las dudas te recomiendo este script que toma todos los datos del formulario.-->
<?php
foreach($_POST as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".addslashes($valor)."';";
    eval(
$asignacion);}
foreach(
$_GET as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".$valor."';";
    eval(
$asignacion);}
foreach(
$_FILES as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".$valor."';";
    eval(
$asignacion);}
?>
<!--conexión a la DB-->
<?
$db_slp
['dbhost'] = 'localhost';
$db_slp['dbuser'] = 'nombre de usuario';
$db_slp['dbpassword'] = 'contraseña';
$db_slp['dbname'] = 'nombre de la DB';
$db_conexionmysql_connect($db_slp['dbhost'],$db_slp['dbuser'],$db_slp['dbpassword']) or die("No se pudo conectar a la base de datos");
mysql_select_db($db_slp['dbname']) or die("no se puede acceder a la base de datos");
?>
(*) Busca información en el manuel de PHP o en Google, si tienes dudas consúltame, pero antes prueba, prueba y prueba, nadie debe rendirse en la primera...
Saludos cuidate
sebtev
__________________
Dios dira que esto no es justo, pero lo sera...
  #3 (permalink)  
Antiguo 11/04/2005, 16:38
 
Fecha de Ingreso: abril-2005
Mensajes: 39
Antigüedad: 19 años
Puntos: 0
saludos he estado viendo sus post, y pido que me ayuden por favor por que tengo un problema precisamente con imagenes y bases de datos, ¿como visualizo una imagen desde access?, hice una consulta pero el campo de la imagen no me sale, me faltara alguna instruccion para poder visualizar la imagen, estoy trabajando con php y access, de antemano, gracias.
  #4 (permalink)  
Antiguo 11/04/2005, 16:42
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años
Puntos: 2
Te recomiendo...

En tu despliegue de noticias:

1. Inserta codigo HTML con la liga hacia la imagen que deseas insertar...
<a src="imagene.jpg">

2. Necesitas un template donde tiene Texto(Noticia) e Imagen, entonces en tu Base de datos, guardas los campos:

Noticia = "Esta mañana se murio Benito Juarez...."
Imagen = "imagen.jpg"

Y listo, esas son los mejores metodos en mi opinion.
  #5 (permalink)  
Antiguo 15/04/2005, 20:34
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
error

Cita:
Iniciado por sebtev
Código PHP:
<!--Para subir las imagenes mediante HTTP Solo debes tener en cuenta de poner en el la etiqueta <form> enctype="multipart/form-data"
esto es lo que le permite al formulario subir archivos de datos, en nuestro caso imágenes-->
<form name="insertar" action="tuarchivo.php o el mismo script con phpself*" method="POST" enctype="multipart/form-data">
<tr><td><b>TÍTULO:</b></td><td><input type="text" name="titulo" size="60"></td></tr>
<tr><td><b>COPETE:</b></td><td><input type="text" name="copete" size="60"></td></tr>
<tr><td><b>NOTA:</b></td><td><textarea name="nota" cols="46" rows="10"></textarea></td></tr>
<tr>
<!--Aquí veras q el input type q utilizamos es "file", esto mostrará un boton de "examinar" a tus usuarios, con éste podrán buscar en su HD la imagen a subir. En caso de q quieres subir varias imágenes a la vez debes poner cuantos <input type="file"> quieras, pero debes cambiarle el nombre.-->
<td><b>IMAGEN:</b></td><td><input type="file" name="img1" size="44"></td></tr>
<tr><td><b>COPETE 1º IMAGEN:</b></td><td><input type="text" name="copete_img1" size="60"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="INGRESAR INFORMACIÓN"><input type="hidden" name="fecha_ingreso" value="".$fecha_valida.""></td></form></tr>
<!--El resto no varía, solo q yo, por costumbre paso un hidden (dato oculto) con la fecha de ingreso de la imagen, esto lo puedes hacer con la variable date() de PHP. Un ejemplo claro sería-->
<?
$fecha_valida 
date(Ymd);
echo 
$fecha_valida;
//esto tendría una salida similar a esta
//20050317
//(año 2005, mes 03 día 17), lo utilizo así para poder, en caso de necesitarlo ordenar las imágenes por fecha
?>
<!--OK, en el form le habiamos dado como action="tuarchivo.php", en ese archivo necesitaremos algo más o menos así para tratar las imágenes que el usuario ha subido-->
<?
if($_FILES["img1"]["name"] == ""){
    
$img1 "";
    
$ruta1 "";
    }else{
    
$img1 $_FILES["img1"];
    
$prefijo time();
    
$url "/galeria/2005/";
    
$directorio $_SERVER['DOCUMENT_ROOT'].$url;
    
$ruta1 $directorio.$prefijo.$img1["name"];
    if (
move_uploaded_file($img1['tmp_name'],$ruta1)){echo "El archivo ha sido cargado correctamente.<br>/n"
    }else{echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.<br>/n";
       
$img1['userfile']['error'];}
}
?>
<!--Bien, ya hemos creado el formulario para el ingreso de datos e imágenes y hemos subido las imágenes al servidor un poco de mysql nos vendría bien-->
<?
<!--En el mismo archivo (tuarchivo.phpy luego de el script anterior deberías ingresar los datos a la DB-->
mysql_query("INSERT INTO nombreDB (titulo,copete,nota,img1,copete_img1) VALUES('$titulo','$copete','$nota','$ruta1','$copete_img1','$fecha_ingreso')") or die(mysql_error());
?>
<!--Esto es simple, recuerda q antes debes ingresar un mysql_connect q te conviene guardar en un archivo a parte y agregarlo con un include() (ej. include(misdatos.php); a todas las páginas q soliciten datos de la DB (ejemplo al final del archivo para no perder el hilo), lo único q te puede parecer raro es q en vez de guardar la imagen en la DB (algo inapropiado y q hace q las DB aumenten considerablemente de tamaño y se vuelvan lentas e inoperables) guardamos la ruta a la imagen ($ruta1). Bien, aquí termina el script tuarchivo.php, ahora vayamos a como mostrar las imágenes-->
<!--Crearemos otro archivo q llamaremos redimensionar.php, pero primero lo primero, en la página donde quieras mostrar las imágenes por ej. misimagenes.php deberemos realizar lo siguiente:
1º una consulta* a la DB para sacar los datos (lo que nos importa a nosotros es el campo q yo he llamado img1 que tiene el path ($ruta1) donde está la imagen), bien, teniendo esto en claro las img deberas llamarlas de la siguiente manera-->
<?
echo "<img src=\"http://tusitio/redimensionar.php?imagen=".$row['_img1']."&ancho=100&calidad=80\" width=\"100\" border=\"0\" align=\"left\">";
?>
<!--Aquí te daras cuenta q pasamos al script redimensionar.php algunos datos, en imagen va el path de la imagen a "retocar" en ancho el ancho q quieras que sea el preview (thumbails - imagen pequeña creada de la original). En calidad puede ir de 0 a 100, te recomiendo 80
en redimensionar.php pondremos lo sig:-->
<?
include("form.php"); //este include contiene un foreach para registrar y poder utilizar todos los datos q son enviados a los scripts, ya sea mediante POST, GET o FILE. Al final de este embrollo lo tienes...
$imagen $_GET["imagen"]; //simplifico para no usar $_GET[... y todo el barullo para escribir
$ancho $_GET["ancho"]; //lo mismo
$alto $_GET["alto"]; //lo mismo
$calidad $_GET["calidad"]; //de 1 a 100, simplifico
if(substr($imagen,-3) == "jpg" || substr($imagen,-3) == "JPG" || substr($imagen,-4) == "JPEG"){
$src_img imagecreatefromjpeg($imagen); //aqui revisa si la imagen es JPG (php trabaja con jpg y gif) si es jpg se dispone a, en la variable $src_img, crear la imagen
}
elseif(
substr($imagen,-3) == "gif" || substr($imagen,-3) == "GIF"){
$src_img imagecreatefromgif($imagen);//aqui revisa si la imagen es GIF
}else{header("Location: $imagen");//si no es ninguno de los dos (JPG o GIF) devuelve la imagen en su versión original
}
$ancho_original imagesx($src_img); //extrae el ancho original de la imagen
$alto_original imagesy($src_img); //extrae el alto original de la imagen
if(!$alto){
$alto = ($ancho $ancho_original) * $alto_original;
}
if(!
ancho){
$ancho = ($alto $alto_original) * $ancho_original;
}
if(!
$calidad){
$calidad 80;
}
$dst_img imagecreatetruecolor($ancho,$alto);//todos los if anteriores sirven para mantener la proporsión de la img, por eso solo le pasamos el ancho, con simple matemática sacamos el alto q le corresponde (esto es para q la imagen no se distorsione o vea muy estirada)
imagecopyresampled($dst_img$src_img,0,0,0,0,$ancho,$alto,$ancho_original,$alto_original);//crea la copia de la img, dejalo así q funcionara*
header("Content-Type: image/jpeg");//devuelve a la página q lo llamo, en nuestro caso misimagenes.php, la img creada
imagejpeg($dst_img,'',$calidad);
imagedestroy($src_img);//destruye la img y libera la memoria utilizada
imagedestroy($dst_img);//idem anterior
?>
<!--Bien, lo complicado ya está, ahora lo facil en misimagenes.php deberías poner un link q te abra en una nueva pág la imagen original en cada thumbails q muestres, sencillo <a href="<=$row['img1'] target="_blank"><img src...></a>"-->

<!--ACOTACIONES VARIAS: Para usar esto debes tener PHP instalado con las librerías GD (el 99,9% de los servidores lo tienen), si tu eres el servidor, busca php.ini y en él "extensions", por ahí debería haber algo asi "extension=php_gd2.dll"-->

<!--
Siempre los datos q pasan con el method="POST" son recibidos perfectamente por el script, sin necesidad de mucho, pero por las dudas te recomiendo este script que toma todos los datos del formulario.-->
<?php
foreach($_POST as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".addslashes($valor)."';";
    eval(
$asignacion);}
foreach(
$_GET as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".$valor."';";
    eval(
$asignacion);}
foreach(
$_FILES as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".$valor."';";
    eval(
$asignacion);}
?>
sebtev
Hola, tengo problema con este script, creo que es la base de datos , viendo este script te mando mi base da datos para que veas como la he creado
Campo Tipo Atributos Nulo Predeterminado Extra Acción
titulo varchar(250) No
copete varchar(250) No
nota varchar(250) No
img1 varchar(250) No
ruta1 varchar(250) No
copete_img1 varchar(250) No
fecha_ingreso datetime No 0000-00-00 00:00:00
fecha_valida datetime No 0000-00-00 00:00:00

Y aqui te mando el error que me arroga, los archivos son guardados en el servidor, pero los datos no son guardados en la base de datos y le doy pero nada..

El archivo ha sido cargado correctamente.
/n Column count doesn't match value count at row 1

Espero su respuesta, Gracias
  #6 (permalink)  
Antiguo 16/04/2005, 09:11
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Creo q te respondí por email, el error quiere decir q estas intentando introducir un dato en una columna q no existe, el problema esta en el query, (mysql_db_query(INSERT INTO... blabla), deberías postearlo si aún tienes dramas...
Código PHP:
<?
<!--En el mismo archivo (tuarchivo.phpy luego de el script anterior deberías ingresar los datos a la DB-->
mysql_query("INSERT INTO nombreDB (
titulo,
copete,
nota,
img1,
copete_img1,
fecha
) VALUES(
'$titulo',
'$copete',
'$nota',
'$ruta1',
'$copete_img1',
'$fecha_ingreso'
)"
) or die(mysql_error());
?>
En tu DB haz creado un campo llamado ruta1, este no es necesario porq en img1 es donde guardamos la variable $ruta1 (q es el path completo donde se encuentra guardada la imagen, Por ej.: /usuario/www/misitio/misimagenes/2113411mi_imagen.jpg, el número anexado antes de mi_imagen.jpg es la variable $prefijo, es decir el timestamp de UNIX actual, es para evitar q hayan dos imágenes con el mismo nombre.)
__________________
Dios dira que esto no es justo, pero lo sera...
  #7 (permalink)  
Antiguo 16/04/2005, 09:25
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
ss

Cita:
Iniciado por sebtev
En tu DB haz creado un campo llamado ruta1, este no es necesario porq en img1 es donde guardamos la variable $ruta1 (q es el path completo donde se encuentra guardada la imagen, Por ej.: /usuario/www/misitio/misimagenes/2113411mi_imagen.jpg, el número anexado antes de mi_imagen.jpg es la variable $prefijo, es decir el timestamp de UNIX actual, es para evitar q hayan dos imágenes con el mismo nombre.)

OK eso lo entiendo, borre el ruta1 y fecha valida de la base de datos, pero me pasa lo mismo, te pego el tuarchivo.php para que veas

Código PHP:
<? 
if($_FILES["img1"]["name"] == ""){ 
    
$img1 ""
    
$ruta1 ""
    }else{ 
    
$img1 $_FILES["img1"]; 
    
$prefijo time(); 
    
$url "/galeria/2005/"
    
$directorio $_SERVER['DOCUMENT_ROOT'].$url
    
$ruta1 $directorio.$prefijo.$img1["name"]; 
    if (
move_uploaded_file($img1['tmp_name'],$ruta1)){echo "El archivo ha sido cargado correctamente.<br>/n"
    }else{echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.<br>/n"
       
$img1['userfile']['error'];} 

?> 
<? 
$db_slp
['dbhost'] = 'localhost'
$db_slp['dbuser'] = 'user'
$db_slp['dbpassword'] = 'pass'
$db_slp['dbname'] = 'base de datos'
$db_conexionmysql_connect($db_slp['dbhost'],$db_slp['dbuser'],$db_slp['dbpassword']) or die("No se pudo conectar a la base de datos"); 
mysql_select_db($db_slp['dbname']) or die("no se puede acceder a la base de datos"); 
mysql_query("INSERT INTO nombreDB (titulo,copete,nota,img1,copete_img1) VALUES('$titulo','$copete','$nota','$img1','$copete_img1','$fecha_ingreso')") or die(mysql_error()); 
?>
  #8 (permalink)  
Antiguo 16/04/2005, 09:35
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Cita:
Código PHP:
mysql_query("INSERT INTO nombreDB (titulo,copete,nota,img1,copete_img1) VALUES('$titulo','$copete','$nota','$img1','$copet  e_img1','$fecha_ingreso')") or die(mysql_error());
   
No tienes definido $fecha_ingreso 
El problema q tienes en tu query es q estás, tal como te lo dije, intentando ingresar la variable $fecha_ingreso en un campo q no existe, q en realidad no tienes definido,
titulo = $titulo
copete = $copete
nota = $nota
img1 = $ruta
copete_img1 = copete_img1
error = $fecha_ingreso
Lo ves, te falta poner en el query en q campo deseas ingresar el dato de la variable $fecha_ingreso
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #9 (permalink)  
Antiguo 16/04/2005, 09:49
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
Oye gracias, que error tan tonto hehehe
  #10 (permalink)  
Antiguo 16/04/2005, 17:49
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
:s

Hola ahora tengo otro problema al momento de imprimir, la imagen me la garda en la base de datos como "array" osea todos los envios que hago el img1 dice array y a la hora de imprimir los resultados en vez de aparecer la imagen me dice "array"
  #11 (permalink)  
Antiguo 17/04/2005, 09:34
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Lo siento, pero me concentré en el error q te tiraba la DB y no me di cuenta de q era obvio q iba a guardar un array porq le das el valor de $img1, cuanto ahí debes poner $ruta1 q es el path hacia la img.
En el query cambia '$img1' por '$ruta1'
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #12 (permalink)  
Antiguo 17/04/2005, 10:09
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
Cita:
Iniciado por sebtev
Lo siento, pero me concentré en el error q te tiraba la DB y no me di cuenta de q era obvio q iba a guardar un array porq le das el valor de $img1, cuanto ahí debes poner $ruta1 q es el path hacia la img.
En el query cambia '$img1' por '$ruta1'
Saludos cuidate
Perfecto eso era, otra pregunta cuando voy a imprimir resultados me sale /home/website/public_ /galeria/2005/1113754201DSCN0055.jpg mas no la imagen, como haria para imprimir?
PD: el redimensionar.php me da un pocote de errores, por eso lo estoy haciendo yo mismo
  #13 (permalink)  
Antiguo 17/04/2005, 10:20
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Cita:
Iniciado por mandys
Perfecto eso era, otra pregunta cuando voy a imprimir resultados me sale /home/website/public_ /galeria/2005/1113754201DSCN0055.jpg mas no la imagen, como haria para imprimir?
PD: el redimensionar.php me da un pocote de errores, por eso lo estoy haciendo yo mismo
Imprimir en pantalla o imprimir en papel?

Te paso el redimensionar.php original (el q uso yo, q esta actualmente en mi sitio y q funciona a la perfección, debes tener las librerías GD >2.
Código PHP:
<?
include("form.php");
$imagen $_GET["imagen"];
$ancho $_GET["ancho"];
$alto $_GET["alto"];
$calidad $_GET["calidad"]; //de 1 a 100
if(substr($imagen,-3) == "jpg" || substr($imagen,-3) == "JPG" || substr($imagen,-4) == "JPEG"){
$src_img imagecreatefromjpeg($imagen);
}
elseif(
substr($imagen,-3) == "gif" || substr($imagen,-3) == "GIF"){
$src_img imagecreatefromgif($imagen);
}else{
header("Location: $imagen");
}
$ancho_original imagesx($src_img);
$alto_original imagesy($src_img);
if(!
$alto){
$alto = ($ancho $ancho_original) * $alto_original;
}
if(!
ancho){
$ancho = ($alto $alto_original) * $ancho_original;
}
if(!
$calidad){
$calidad 80;
}
$dst_img imagecreatetruecolor($ancho,$alto);
imagecopyresampled($dst_img$src_img,0,0,0,0,$ancho,$alto,$ancho_original,$alto_original);
header("Content-Type: image/jpeg");
imagejpeg($dst_img,'',$calidad);
imagedestroy($src_img);
imagedestroy($dst_img);
?>
__________________
Dios dira que esto no es justo, pero lo sera...
  #14 (permalink)  
Antiguo 17/04/2005, 10:30
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
Cita:
Iniciado por sebtev
Imprimir en pantalla o imprimir en papel?

Te paso el redimensionar.php original (el q uso yo, q esta actualmente en mi sitio y q funciona a la perfección, debes tener las librerías GD >2.
Código PHP:
<?
include("form.php");
$imagen $_GET["imagen"];
$ancho $_GET["ancho"];
$alto $_GET["alto"];
$calidad $_GET["calidad"]; //de 1 a 100
if(substr($imagen,-3) == "jpg" || substr($imagen,-3) == "JPG" || substr($imagen,-4) == "JPEG"){
$src_img imagecreatefromjpeg($imagen);
}
elseif(
substr($imagen,-3) == "gif" || substr($imagen,-3) == "GIF"){
$src_img imagecreatefromgif($imagen);
}else{
header("Location: $imagen");
}
$ancho_original imagesx($src_img);
$alto_original imagesy($src_img);
if(!
$alto){
$alto = ($ancho $ancho_original) * $alto_original;
}
if(!
ancho){
$ancho = ($alto $alto_original) * $ancho_original;
}
if(!
$calidad){
$calidad 80;
}
$dst_img imagecreatetruecolor($ancho,$alto);
imagecopyresampled($dst_img$src_img,0,0,0,0,$ancho,$alto,$ancho_original,$alto_original);
header("Content-Type: image/jpeg");
imagejpeg($dst_img,'',$calidad);
imagedestroy($src_img);
imagedestroy($dst_img);
?>
Imprimir en patalla, como se si tengo las librerías GD >2 instaladas?? porque me da muchos errores el archivo, me imagino que es por eso
  #15 (permalink)  
Antiguo 17/04/2005, 10:43
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Dos formas:
Si tienes acceso al php.ini, abrelo, busca "php_gd2.dll", te darás cuenta si se encuentra habilitada si no tiene un ; delante es decir extension=php_gd2.dll, si tiene el punto y coma borralo. Debes reiniciar el servidor para q tome los cambios, además de indicarle el path donde esta la librería (en el php.ini) extension_dir = "E:\apache\php\extensions/"
Si no tienes acceso al php.ini crea una página y ponle esto
Código PHP:
<?
echo phpinfo();
?>
Esto te mostrará toda la información de PHP, desde q versión q estas usando hasta las librerías q usas.
__________________
Dios dira que esto no es justo, pero lo sera...
  #16 (permalink)  
Antiguo 17/04/2005, 10:49
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
Cita:
Iniciado por sebtev
Dos formas:
Si tienes acceso al php.ini, abrelo, busca "php_gd2.dll", te darás cuenta si se encuentra habilitada si no tiene un ; delante es decir extension=php_gd2.dll, si tiene el punto y coma borralo. Debes reiniciar el servidor para q tome los cambios, además de indicarle el path donde esta la librería (en el php.ini) extension_dir = "E:\apache\php\extensions/"
Si no tienes acceso al php.ini crea una página y ponle esto
Código PHP:
<?
echo phpinfo();
?>
Esto te mostrará toda la información de PHP, desde q versión q estas usando hasta las librerías q usas.
pues al parecer si la tengo instalada
GD Support enabled
GD Version bundled (2.0.28 compatible)

y mira los erorres que me da el redireccionar.php

Warning: Cannot modify header information - headers already sent by (output started at /home/pillate/public_html/v2/bandas/redimensionar.php:9) in /home/pillate/public_html/v2/bandas/redimensionar.php on line 20

Warning: imagesx(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 22

Warning: imagesy(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 23

Warning: Division by zero in /home/pillate/public_html/v2/bandas/redimensionar.php on line 25

Warning: imagecreatetruecolor(): Invalid image dimensions in /home/pillate/public_html/v2/bandas/redimensionar.php on line 33

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 34

Warning: Cannot modify header information - headers already sent by (output started at /home/pillate/public_html/v2/bandas/redimensionar.php:9) in /home/pillate/public_html/v2/bandas/redimensionar.php on line 35

Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 36

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 37

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 38
  #17 (permalink)  
Antiguo 17/04/2005, 11:08
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
OK, empecemos, el error q debemos solucionar es el header, porq estas mandando información, basta un espacio en blanco, si usas un include debes asegurarte de q este no mande información al cliente.
A la img debes llamarla de la siguiente forma
Código HTML:
<img src="http://www.misitio.com.ar/scripts/dimensionar.php?imagen=<?=$row[img];?>&ancho=120&calidad=80" width="100" border="0" align="left"> 
Donde la variable $row es el path guardado en la DB, debes si o si pasarle el ancho o el alto de la img, una de las dos, la calidad no es necesario, esto es lo q te tira en la línea 33
Warning: imagecreatetruecolor(): Invalid image dimensions in /home/pillate/public_html/v2/bandas/redimensionar.php on line 33
Es decir no puede crear una img de 0px X 0px.
__________________
Dios dira que esto no es justo, pero lo sera...
  #18 (permalink)  
Antiguo 17/04/2005, 21:16
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
Cita:
Iniciado por sebtev
OK, empecemos, el error q debemos solucionar es el header, porq estas mandando información, basta un espacio en blanco, si usas un include debes asegurarte de q este no mande información al cliente.
A la img debes llamarla de la siguiente forma
Código HTML:
<img src="http://www.misitio.com.ar/scripts/dimensionar.php?imagen=<?=$row[img];?>&ancho=120&calidad=80" width="100" border="0" align="left"> 
Donde la variable $row es el path guardado en la DB, debes si o si pasarle el ancho o el alto de la img, una de las dos, la calidad no es necesario, esto es lo q te tira en la línea 33
Warning: imagecreatetruecolor(): Invalid image dimensions in /home/pillate/public_html/v2/bandas/redimensionar.php on line 33
Es decir no puede crear una img de 0px X 0px.
no entendi mucho eso, copio el codigo html y lo pego antes de empezar el codigo php no?
en $imagen = $_GET["imagen"]; pienso que deberia ir algo, pero no se que es...
  #19 (permalink)  
Antiguo 18/04/2005, 00:30
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
NO, empezaremos de cero porq te estas perdiendo... Tu tienes en tu sitio dos archivos, uno index.php q es tu página principal y otro redimensionar.php q gestiona tus imágenes.
Cuando necesitas mostrar una imagen en la página principal debes llamarla usando a dimensionar.php,
Código PHP:
<html>
<body>
<img src="http://www.misitio.com.ar/scripts/dimensionar.php?imagen=<?=$row[img];?>&ancho=120&calidad=80" width="100" border="0" align="left">
</body>
</html>
Como verás el source (src) enviamos a dimensionar.php, a este archivo le pasamos varios datos por la url:
Código PHP:
 imagen=<?=$row[img];?>
Es el path junto con el nombre de donde esta guardada la imagen q vas a mostrar en esta parte de index.php, este dato lo obtienes de la Base de datos.
Código PHP:
&ancho=120&calidad=80
Aquí le pasamos como dato
ancho=120 el ancho q tendrá la imagen a mostraren este caso 120 píxelescalidad=80 la calidad de resolución de la imagenen este caso 80este dato podrías obviarlo si quieres
OK, entonces esto quedaría mas o menos todo así:
Index.php
Código PHP:
<?php
$db 
mysql_db_query($db_slp['dbname'], 'SELECT * FROM tutabla') or die(mysql_error());
$row mysql_fetch_array($db);
?>
<HTML>
<HEAD>
<TITLE>misitio</TITLE>
</HEAD>
<BODY text="#666666" vLink="#666666" aLink="#666666" link="#666666" bgColor="#ffffff" leftMargin="0" topMargin="0" marginheight="0" marginwidth="0">
<!--INICIO FOTOS-->
<?
if($row['img1'] != ""){
echo 
"<table width=\"120\" border=0 align=\"center\"><tr><td class=\"negrachica\"><img src=\"http://www.tusitio.com.ar/scripts/dimensionar.php?imagen=".$row['img1']."&ancho=120&calidad=80\" width=\"100\" border=\"0\" align=\"left\"></td></tr></table>";
}
</
BODY>
</
HTML>
dimensionar.php es así
Código PHP:
<?php
foreach($_GET as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".$valor."';";
    eval(
$asignacion);}
?> //esto se encontraba antes en un include "include(form.php)", es solo un foreach q recorre todos los $_GET.
<?
$imagen 
$_GET["imagen"];
$ancho $_GET["ancho"];
$alto $_GET["alto"];
$calidad $_GET["calidad"]; //de 1 a 100
if(substr($imagen,-3) == "jpg" || substr($imagen,-3) == "JPG" || substr($imagen,-4) == "JPEG"){
$src_img imagecreatefromjpeg($imagen);
}
elseif(
substr($imagen,-3) == "gif" || substr($imagen,-3) == "GIF"){
$src_img imagecreatefromgif($imagen);
}else{
header("Location: $imagen");
}
$ancho_original imagesx($src_img);
$alto_original imagesy($src_img);
if(!
$alto){
$alto = ($ancho $ancho_original) * $alto_original;
}
if(!
ancho){
$ancho = ($alto $alto_original) * $ancho_original;
}
if(!
$calidad){
$calidad 80;
}
$dst_img imagecreatetruecolor($ancho,$alto);
imagecopyresampled($dst_img$src_img,0,0,0,0,$ancho,$alto,$ancho_original,$alto_original);
header("Content-Type: image/jpeg");
imagejpeg($dst_img,'',$calidad);
imagedestroy($src_img);
imagedestroy($dst_img);
?>
Dimensionar.php debe ir "solito" no embebido dentro de tu index.php ni nada por el estilo.
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...

Última edición por sebtev; 18/04/2005 a las 00:35
  #20 (permalink)  
Antiguo 18/04/2005, 21:14
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
ok, bueno el index.php que me pusistes como ejemplo no me corrio, pero llamo a la imagen como lo colocastes

Código PHP:
<img src="http://www.misitio.com.ar/scripts/dimensionar.php?imagen=<?=$row[img];?>&ancho=120&calidad=80" width="100" border="0" align="left">
y me aparece un cuadro como si la imagen no existiera, y las propiedades de la imagen cuando le doy click derecho en ella me aparece

http://www.sitio.com/dimensionar.php...120&calidad=80

al parecer la imagen no la encuentra
  #21 (permalink)  
Antiguo 19/04/2005, 08:35
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Bien, todo lo q yo te estoy pasando, son eso ejemplos, no necesariamente deben de andar. Porq vos debes de modificarlos, adaptarlos a tu sitio, es decir poner tu datos de acceso a MySQL, el nombre de la Base de Datos q vas a utilizar, los links:
Código:
y me aparece un cuadro como si la imagen no existiera, y las propiedades de la imagen cuando le doy click derecho en ella me aparece

http://www.sitio.com/dimensionar.php?imagen=&ancho=120&calidad=80

al parecer la imagen no la encuentra
www.sitio.com.ar es solo un ejemplo, debes de modificar ésto por el nombre de tu sitio, si esta puesto en un server sería algo como el ejemplo, si lo estas corriendo local entonces debería ser algo así "http://localhost/misitio/", luego debes de pasar el path en donde tienes dimensionar.php.
Postea los archivos q estas usando vos, no lo q yo te mando como ejemplo, por q yo ya se q esos no van a funcionar si no los modificas. No hay forma de q pueda ayudarte, se hace imposible saber donde puede haber un error.
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #22 (permalink)  
Antiguo 19/04/2005, 11:45
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
Cita:
Iniciado por sebtev
Bien, todo lo q yo te estoy pasando, son eso ejemplos, no necesariamente deben de andar. Porq vos debes de modificarlos, adaptarlos a tu sitio, es decir poner tu datos de acceso a MySQL, el nombre de la Base de Datos q vas a utilizar, los links:
Código:
y me aparece un cuadro como si la imagen no existiera, y las propiedades de la imagen cuando le doy click derecho en ella me aparece

http://www.sitio.com/dimensionar.php?imagen=&ancho=120&calidad=80

al parecer la imagen no la encuentra
www.sitio.com.ar es solo un ejemplo, debes de modificar ésto por el nombre de tu sitio, si esta puesto en un server sería algo como el ejemplo, si lo estas corriendo local entonces debería ser algo así "http://localhost/misitio/", luego debes de pasar el path en donde tienes dimensionar.php.
Postea los archivos q estas usando vos, no lo q yo te mando como ejemplo, por q yo ya se q esos no van a funcionar si no los modificas. No hay forma de q pueda ayudarte, se hace imposible saber donde puede haber un error.
Saludos cuidate
Hola pues claro que los modifico, aqui te mando mis archivos como pides
Index.php
Código PHP:
<?php 
$base
="database";
$con=mysql_connect(localhost,user,pass);
mysql_select_db($base,$con);
$db mysql_db_query($db_slp[database], 'SELECT * FROM nombreDB') or die(mysql_error()); 
$row mysql_fetch_array($db); 
?> 
<HTML> 
<HEAD> 
<TITLE>misitio</TITLE> 
</HEAD> 
<BODY text="#666666" vLink="#666666" aLink="#666666" link="#666666" bgColor="#ffffff" leftMargin="0" topMargin="0" marginheight="0" marginwidth="0"> 
<!--INICIO FOTOS--> 
<? 
if($row['img1'] != ""){ 
echo 
"<table width=\"120\" border=0 align=\"center\"><tr><td class=\"negrachica\"><img src=\"http://www.pillate.com/v2/bandas/dimensionar.php?imagen=".$row['img1']."&ancho=120&calidad=80\" width=\"100\" border=\"0\" align=\"left\"></td></tr></table>"

?> 
</BODY> 
</HTML>
Redimensionar.php
Código PHP:
<?php 
foreach($_GET as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".$valor."';"
    eval(
$asignacion);} 
?> //esto se encontraba antes en un include "include(form.php)", es solo un foreach q recorre todos los $_GET. 
<? 
$imagen 
$_GET["imagen"]; 
$ancho $_GET["ancho"]; 
$alto $_GET["alto"]; 
$calidad $_GET["calidad"]; //de 1 a 100 
if(substr($imagen,-3) == "jpg" || substr($imagen,-3) == "JPG" || substr($imagen,-4) == "JPEG"){ 
$src_img imagecreatefromjpeg($imagen); 

elseif(
substr($imagen,-3) == "gif" || substr($imagen,-3) == "GIF"){ 
$src_img imagecreatefromgif($imagen); 
}else{
header("Location: $imagen"); 

$ancho_original imagesx($src_img); 
$alto_original imagesy($src_img); 
if(!
$alto){ 
$alto = ($ancho $ancho_original) * $alto_original

if(!
ancho){ 
$ancho = ($alto $alto_original) * $ancho_original

if(!
$calidad){ 
$calidad 80

$dst_img imagecreatetruecolor($ancho,$alto); 
imagecopyresampled($dst_img$src_img,0,0,0,0,$ancho,$alto,$ancho_original,$alto_original); 
header("Content-Type: image/jpeg"); 
imagejpeg($dst_img,'',$calidad); 
imagedestroy($src_img); 
imagedestroy($dst_img); 
?>
  #23 (permalink)  
Antiguo 19/04/2005, 12:18
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
index.php
Código PHP:
<?php
$base
="database";
$con=mysql_connect(localhost,user,pass) or die(mysql_error());
mysql_select_db($base,$con) or die(mysql_error());
$db mysql_db_query($base'SELECT img1 FROM tutabla WHERE id = 1') or die(mysql_error());
$row mysql_fetch_array($db) or die(mysql_error());
?>
<!--INICIO FOTOS-->
<?
if($row['img1'] != ""){
echo 
"<table width=\"120\"><tr><td><img src=\"http://www.pillate.com/v2/bandas/dimensionar.php?imagen=".$row['img1']."&ancho=120&calidad=80\" ></td></tr></table>";
}else{
echo 
$row['img1']." <<-- campo imagen vacío";
}
?>
Esto es un debbuger, tengo q conocer donde te tira el error, marca la línea, y con color.
dimensionar.php esta bien, yo me jugaría por el path guardado en la DB, muestrame como creaste la base de datos (si el campo img1 es un VARCHAR), etc.
Si no te tira ningún error, tiene q ser el path.
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #24 (permalink)  
Antiguo 19/04/2005, 14:56
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
Cita:
Iniciado por sebtev
index.php
Código PHP:
<?php
$base
="database";
$con=mysql_connect(localhost,user,pass) or die(mysql_error());
mysql_select_db($base,$con) or die(mysql_error());
$db mysql_db_query($base'SELECT img1 FROM tutabla WHERE id = 1') or die(mysql_error());
$row mysql_fetch_array($db) or die(mysql_error());
?>
<!--INICIO FOTOS-->
<?
if($row['img1'] != ""){
echo 
"<table width=\"120\"><tr><td><img src=\"http://www.pillate.com/v2/bandas/dimensionar.php?imagen=".$row['img1']."&ancho=120&calidad=80\" ></td></tr></table>";
}else{
echo 
$row['img1']." <<-- campo imagen vacío";
}
?>
Esto es un debbuger, tengo q conocer donde te tira el error, marca la línea, y con color.
dimensionar.php esta bien, yo me jugaría por el path guardado en la DB, muestrame como creaste la base de datos (si el campo img1 es un VARCHAR), etc.
Si no te tira ningún error, tiene q ser el path.
Saludos cuidate
lo mismo, te pego mi base de datos
Campo Tipo Atributos Nulo Predeterminado Extra Acción
titulo varchar(250) No
copete varchar(250) No
nota varchar(250) No
img1 varchar(250) No
copete_img1 varchar(250) No
fecha_ingreso datetime No 0000-00-00 00:00:00

velo por ti mismo http://pillate.com/v2/bandas/index2.php
  #25 (permalink)  
Antiguo 19/04/2005, 16:05
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
El problema es el siguiente: el path q le pasas no es el correcto, porq en su server (no me preguntes como lo averigue), el archivo se llama redimensionar.php y no dimensionar.php como esta puesto en los archivos q usas.
http://pillate.com/v2/bandas/redimensionar.php
A este archivo quitale el comentario porq esta fuera de los tag de apertura y cierre.
(El comentario es lo que comienza con ////esto se encontraba antes en un include "include(form.php)", es solo un foreach q recorre todos los $_GET. y los tag <? ?> <? ?>. NO BORRES LOS tag, solo el comentario o ponlo dentro de los tag
Prueba así.
Saludos cuidate.
__________________
Dios dira que esto no es justo, pero lo sera...
  #26 (permalink)  
Antiguo 19/04/2005, 17:24
 
Fecha de Ingreso: abril-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 0
Cita:
Iniciado por sebtev
El problema es el siguiente: el path q le pasas no es el correcto, porq en su server (no me preguntes como lo averigue), el archivo se llama redimensionar.php y no dimensionar.php como esta puesto en los archivos q usas.
http://pillate.com/v2/bandas/redimensionar.php
A este archivo quitale el comentario porq esta fuera de los tag de apertura y cierre.
(El comentario es lo que comienza con ////esto se encontraba antes en un include "include(form.php)", es solo un foreach q recorre todos los $_GET. y los tag <? ?> <? ?>. NO BORRES LOS tag, solo el comentario o ponlo dentro de los tag
Prueba así.
Saludos cuidate.
Hola, acomode lo que me dijistes y en redimensionar.php igual salen los errores

Warning: Cannot modify header information - headers already sent by (output started at /home/pillate/public_html/v2/bandas/redimensionar.php:5) in /home/pillate/public_html/v2/bandas/redimensionar.php on line 15

Warning: imagesx(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 17

Warning: imagesy(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 18

Warning: Division by zero in /home/pillate/public_html/v2/bandas/redimensionar.php on line 20

Warning: imagecreatetruecolor(): Invalid image dimensions in /home/pillate/public_html/v2/bandas/redimensionar.php on line 28

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 29

Warning: Cannot modify header information - headers already sent by (output started at /home/pillate/public_html/v2/bandas/redimensionar.php:5) in /home/pillate/public_html/v2/bandas/redimensionar.php on line 30

Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 31

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 32

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/pillate/public_html/v2/bandas/redimensionar.php on line 33
  #27 (permalink)  
Antiguo 19/04/2005, 17:50
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Lamento informarte pero no hay errorsillos en el código, el problema es q tu quieres copiar y pegar en ves de aprender. Porq a mi me funciona a la perfección en cualquier sitio q lo ponga. Copia y pega (como te gusta hacer) el segundo dimensionar.php q te mande.
Código PHP:
<?php
foreach($_GET as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".$valor."';";
eval(
$asignacion);}

$imagen $_GET["imagen"];
$ancho $_GET["ancho"];
$alto $_GET["alto"];
$calidad $_GET["calidad"]; //de 1 a 100
if(substr($imagen,-3) == "jpg" || substr($imagen,-3) == "JPG" || substr($imagen,-4) == "JPEG"){
$src_img imagecreatefromjpeg($imagen);
}
elseif(
substr($imagen,-3) == "gif" || substr($imagen,-3) == "GIF"){
$src_img imagecreatefromgif($imagen);
}else{
header("Location: $imagen");
}
$ancho_original imagesx($src_img);
$alto_original imagesy($src_img);
if(!
$alto){
$alto = ($ancho $ancho_original) * $alto_original;
}
if(!
ancho){
$ancho = ($alto $alto_original) * $ancho_original;
}
if(!
$calidad){
$calidad 80;
}
$dst_img imagecreatetruecolor($ancho,$alto);
imagecopyresampled($dst_img$src_img,0,0,0,0,$ancho,$alto,$ancho_original,$alt  o_original);
header("Content-Type: image/jpeg");
imagejpeg($dst_img,'',$calidad);
imagedestroy($src_img);
imagedestroy($dst_img);
?>
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #28 (permalink)  
Antiguo 27/04/2005, 00:49
Avatar de ortiz  
Fecha de Ingreso: septiembre-2004
Mensajes: 154
Antigüedad: 19 años, 6 meses
Puntos: 0
asias pipol!

Hola

Gracias Sebtev y demás, por responder y disculpad mi tardanza en el agradecimiento

He leído el hilo, desde mi pregunta original hasta al final. Me parece que no me exprese bien al principio, porque lo que tú me ofreces es un código para permitir que vía web, los usuarios puedan subir imágenes al servidor, creo

Yo, preguntaba otra cosa. Verás, yo tengo algo así :

1 tabla con datos (id, nombre, descripción, fecha) por ej, y otra

2 con (id, nombre, ruta, ancho, alto) que contendría "imágenes" ( la ruta sería un varchar(255) con la ruta hasta la imagen en el servidor)

Lo pensé de esta manera, para relacionar digamos, un elemento de la tabla 1, con imágenes en la 2. Las tablas son MyIsam por cierto.

Y bueno, yo quería saber como la gente hacia para mostrar la imágen. Yo, utilizo el típico bucle para mostrar las filas de la tabla.

¿Pero y las imágenes?. Pensé en hacer una segunda consulta dentro del mismo bucle, pero...no se yo Y claro, ahora de momento, lo hago manual, escribo unas líneas y pongo las imágenes a mano. Lo que yo querría es que se mostrase una consulta de la bd1 y después las imágenes guardadas de la b2. Conseguí hacerlo como digo con un bucle dentro de otro bucle, un while dentro de otro while, pero no se porque, la consulta del segundo se comía la del primero.

He leído todos los ejemplos en javascript de los miembros del foro, pero lo encuentro complicado para mi nivel de programación, que es cercano al de una cabra


En fin, si alguien me echa una mano, pues bienvenido sea!....otra vez!


Saludossssssss
  #29 (permalink)  
Antiguo 27/04/2005, 10:02
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Tu problema no es nada complicado, solo q estas preguntando en el foro inadecuado, deberías de realizar esta pregunta en el foro de base de datos.
Lo q debes hacer es seleccionar x campos de tabla 1 y x campos de tabla 2, y hacer un solo while. Deberás usar un JOIN, la relación q puedes usar es el nombre. (si es q el nombre de usuario es el nombre de usuario en la tabla2 y no de la imagen) o sino utiliza UNION
la consulta sería algo así
Código PHP:
SELECT FROM tabla1 UNION SELECT FROM tabla2 ORDER BY fecha 
y para mostrar la imagen podrías usar el dimensionar.php q te pase y le pasas el path q ya tendras con la consulta
Código PHP:
echo "<img src=\"dimensionar.php?imagen=$row['ruta']&ancho=100\"> 
__________________
Dios dira que esto no es justo, pero lo sera...
  #30 (permalink)  
Antiguo 28/04/2005, 10:43
Avatar de ortiz  
Fecha de Ingreso: septiembre-2004
Mensajes: 154
Antigüedad: 19 años, 6 meses
Puntos: 0
Holass

Gracias por el consejo, mi próxima pregunta irá en la sección correspondiente . Lo que pasa,es que mezclo php, con mysql, con css , un lío vaya.

No me hará falta hacer un UNION, porque las 2 tablas tienen un campo común,ya me entiendes.

Lo del dimensionar.php,yo al menos no lo tengo, si quieres decirme algun sitio para buscarlo con algo de información, pues encantado


Un saludo!
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 06:36.