Comunidad PHPeros

Lenguajes => PHP => Mensaje iniciado por: -Pituko- en 07 de Agosto de 2011, 16:38:18 pm

Título: [AYUDA] Imágenes en campo blob
Publicado por: -Pituko- en 07 de Agosto de 2011, 16:38:18 pm
Tengo un campo blob en una tabla MySQL donde subo imágenes.
Pero no se suben completas al campo blob y utilize el tutorial de naveda.

Código de subida:
Código: [Seleccionar]
<?php
if(isset($_SESSION[&#39;nick&#39;])) {
?>

<form enctype="multipart/form-data" method="POST">
Selecciona una imagen para usar como avatar:<br />
<input type="file" name="imagen" /><br />
<input type="submit" name="enviar" value="Enviar" />
</form>
<?php
if(isset($_POST[&#39;enviar&#39;])) {
$tipos = array("image/gif","image/jpeg","image/bmp","image/pjpeg""image/png");
$maximo 102400//100Kb
if (is_uploaded_file($_FILES[&#39;imagen&#39;][&#39;tmp_name&#39;])) {
if (in_array($_FILES[&#39;imagen&#39;][&#39;type&#39;],$tipos) && $_FILES[&#39;imagen&#39;][&#39;size&#39;] <= $maximo) {
                        
list($l$a$t$attr) = getimagesize($_FILES[&#39;imagen&#39;][&#39;tmp_name&#39;]);
                        
if(($l <= 200 and $a <= 200)&&($l 20 and $a 20)) {
$fp fopen($_FILES[&#39;imagen&#39;][&#39;tmp_name&#39;], &#39;r&#39;);
$imagen fread($fpfilesize($_FILES[&#39;imagen&#39;][&#39;tmp_name&#39;]));
$imagen addslashes($imagen);
fclose($fp);
if(!get_magic_quotes_gpc())
$nombre addslashes($_FILES[&#39;imagen&#39;][&#39;name&#39;]);
else 
$nombre $_FILES[&#39;imagen&#39;][&#39;name&#39;];
$data mysql_query("UPDATE usuarios SET avatar = &#39;".$imagen."&#39; WHERE nick = &#39;".$_SESSION[&#39;nick&#39;]."&#39;");
$data2 mysql_query("UPDATE usuarios SET tipoavatar = &#39;".$_FILES[&#39;imagen&#39;][&#39;type&#39;]."&#39; WHERE nick = &#39;".$_SESSION[&#39;nick&#39;]."&#39;");
if ($data and $data2
echo &#39;Avatar cambiado correctamente.&#39;;
else
echo "Hubo un error al cambiar de avatar";
               
   } else
               
     echo "La Dimensión de la imagen es inapropiada";
} else 
echo "El formato del archivo no es correcto o es mayor de 100Kb";
} else
echo "La imagen no ha sido subida";
}
} else
echo "Necesitas estar logueado para cambiar tu avatar";
?>


Código del visor:
Código: [Seleccionar]
<?php
//Conexión MySQL//
$query mysql_query("SELECT * FROM usuarios WHERE id = &#39;".$_GET[&#39;id&#39;]."&#39;")or die(false);
if (!mysql_num_rows($query)) 
exit(header("HTTP/1.0 404 Not Found"));
else {
$datos mysql_fetch_array($query);
header("Content-Type: ".$datos[&#39;tipoavatar&#39;]);
echo $datos[&#39;avatar&#39;];
}
?>



Utilice mi imagen de perfil de acá a subir y así se ve:
(http://ildomeros.tk/verav.php?id=1)

¿Me pueden ayudar?, he buscado en google y nada que nada, he buscado y pensado a que se puede deber el error y tampoco se me ocurre nada.
Hice uno que otro cambio en el código pero aún así no encuentro error D:.
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: westwest en 07 de Agosto de 2011, 18:24:44 pm
Puede que el campo no sea lo suficientemente grande, usa otro tipo de blob (bigblob puede ser, no recuerdo, solo recuerdo que hay smallblob, y mediumblob)
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: -Pituko- en 08 de Agosto de 2011, 00:03:16 am
Puede que el campo no sea lo suficientemente grande, usa otro tipo de blob (bigblob puede ser, no recuerdo, solo recuerdo que hay smallblob, y mediumblob)
Probe con longblob y perfecto, estaba usando el blob normal.
K+
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: GuayAngel12 en 08 de Agosto de 2011, 00:43:08 am
Yo, siempre que pueda elegir entre un campo que pueda albergar 255 caracteres (varchar) por ejemplo, y un campo que pueda albergar muchos mas carácteres (text) la mayoría de las veces voy a elegir el que más caracteres puede albergar, ya que nunca se sabe cuánto se va a ocupar.

No hay que pensar como administrador, si no como usuario.

Saludos!
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: Physlet en 08 de Agosto de 2011, 00:53:55 am
Yo, siempre que pueda elegir entre un campo que pueda albergar 255 caracteres (varchar) por ejemplo, y un campo que pueda albergar muchos mas carácteres (text) la mayoría de las veces voy a elegir el que más caracteres puede albergar, ya que nunca se sabe cuánto se va a ocupar.

No hay que pensar como administrador, si no como usuario.

Saludos!
Eso no es diseñar correctamente una base de datos. Se debe especificar un máximo de caracteres conforme a los requerimientos del sistema que estés desarrollando.
Las cosas se deben analizar previamente.
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: GuayAngel12 en 08 de Agosto de 2011, 00:59:58 am
Eso no es diseñar correctamente una base de datos. Se debe especificar un máximo de caracteres conforme a los requerimientos del sistema que estés desarrollando.
Las cosas se deben analizar previamente.

¿Quien dijo que no analizo las cosas previamente? Yo se perfectamente como he de estructurar mi base de datos. Ha sido un mero ejemplo.

Saludos.
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: Physlet en 08 de Agosto de 2011, 01:04:44 am
¿Quien dijo que no analizo las cosas previamente? Yo se perfectamente como he de estructurar mi base de datos. Ha sido un mero ejemplo.
Saludos.
Me he basado en tu ejemplo para publicar lo que puse. Si tú sabes lo que se va a guardar, y conforme a los requerimientos se debe calcular más o menos cuanto ocupará, ya que poner siempre el de mayor capacidad pudiendo colocar uno menor no tiene sentido.
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: GuayAngel12 en 08 de Agosto de 2011, 01:07:35 am
Re*****... yo se estructurar mis bases de datos... como leerás mas arriba, he dicho "la mayoría de las veces" pero eso no quiere decir un "siempre" y vuelvo a repetir, que yo se estructurar perfectamente mis bases de datos, y nunca, nunca me ha dado ningun problema.
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: Physlet en 08 de Agosto de 2011, 01:13:41 am
Re*****... yo se estructurar mis bases de datos... como leerás mas arriba, he dicho "la mayoría de las veces" pero eso no quiere decir un "siempre" y vuelvo a repetir, que yo se estructurar perfectamente mis bases de datos, y nunca, nunca me ha dado ningun problema.
Te estás ahogando en un vaso de agua... Con calma, relájate un poco. Aquí vamos de nuevo:

la mayoría de las veces voy a elegir el que más caracteres puede albergar, ya que nunca se sabe cuánto se va a ocupar.
Me baso en esta cita para publicar esto:
"Eso no es diseñar correctamente una base de datos. Se debe especificar un máximo de caracteres conforme a los requerimientos del sistema que estés desarrollando.
Las cosas se deben analizar previamente."


No he dicho que seas malo diseñando bases de datos. He dicho que lo que has mencionado no es una buena práctica ya que si conoces lo que estás programando debes estipular un máximo aproximado del espacio que vas a necesitar en un campo determinado.
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: GuayAngel12 en 08 de Agosto de 2011, 01:16:27 am
Te voy a poner un ejemplo:

Un campo: "password".

Un usuario normal puede poner una contraseña de 6 a 12 caracteres aprox.

Un usuario preocupado por la seguridad puede poner una contraseña de 40 a 255 aprox.

Es poco ético, pero es así. Una contraseña nunca sabes lo que pueden poner, no se si me entiendes.

Saludos.
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: westwest en 08 de Agosto de 2011, 01:18:21 am
Te voy a poner un ejemplo:

Un campo: "password".

Un usuario normal puede poner una contraseña de 6 a 12 caracteres aprox.

Un usuario preocupado por la seguridad puede poner una contraseña de 40 a 255 aprox.

Es poco ético, pero es así. Una contraseña nunca sabes lo que pueden poner, no se si me entiendes.

Saludos.
Permitir una contraseña de 255 caracteres es completamente inútil. Con 12 caracteres la contraseña ya es suficientemente segura. Además, si lo encriptas en md5 (que se debe hacer, o sha1, o lo que sea) bastarían 32 caracteres.
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: GuayAngel12 en 08 de Agosto de 2011, 01:20:24 am
*****!! Vale! Pues he cometido un error! Lo reconozco :P Todo el mundo comete errores!!!
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: Physlet en 08 de Agosto de 2011, 01:22:54 am
Te voy a poner un ejemplo:
Un campo: "password".
Un usuario normal puede poner una contraseña de 6 a 12 caracteres aprox.
Un usuario preocupado por la seguridad puede poner una contraseña de 40 a 255 aprox.
Es poco ético, pero es así. Una contraseña nunca sabes lo que pueden poner, no se si me entiendes.
Saludos.
¿No soy especialista en el tema de los hash de seguridad, pero existe alguno que codifique en 255 caracteres?
Sería buena idea que buscaras otro ejemplo para explicar tu punto.

*****!! Vale! Pues he cometido un error! Lo reconozco :P Todo el mundo comete errores!!!
No es por nada, pero siento que tu actitud se está tornando un poco infantil. Lo dices en plan: "AY CARAJO NO ME JODAN, QUE ACASO NO ME PUEDO EQUIVOCAR?". Él lo ha hecho en buen plan, al igual que yo.
Igual puede ser que me equivoque, es dificil entender qué intentan expresar las personas mediante texto.
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: GuayAngel12 en 08 de Agosto de 2011, 01:25:03 am
Aveer... para el que no lo ha entendido Physlet. Lo he dicho con todo el amor hacia vosotras ^^ Soy humano, cometo *****eces y tengo errores.

Un error de programación/maquetación siempre tiene solución.

Saludos!
Título: Re:[AYUDA] Imágenes en campo blob
Publicado por: Physlet en 08 de Agosto de 2011, 01:29:55 am
Aveer... para el que no lo ha entendido Physlet. Lo he dicho con todo el amor hacia vosotras ^^ Soy humano, cometo *****eces y tengo errores.

Un error de programación/maquetación siempre tiene solución.
Saludos!
Los de programación tienen solución, al igual que los de actitud.

Saludos.