Autor Tema: [AYUDA] Imágenes en campo blob  (Leído 1205 veces)

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
[AYUDA] Imágenes en campo blob
« 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:


¿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:.
« Última modificación: 07 de Agosto de 2011, 16:40:50 pm por -Pituko- »

Comunidad PHPeros

[AYUDA] Imágenes en campo blob
« en: 07 de Agosto de 2011, 16:38:18 pm »

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[AYUDA] Imágenes en campo blob
« Respuesta #1 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)

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[AYUDA] Imágenes en campo blob
« Respuesta #2 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+

Desconectado GuayAngel12

  • PHPero Experto
  • *****
  • Mensajes: 894
  • Karma: 17
  • Sexo: Masculino
  • Programador PHP, CSS, HTML...
    • Ver Perfil
    • GreeBool
Re:[AYUDA] Imágenes en campo blob
« Respuesta #3 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!

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[AYUDA] Imágenes en campo blob
« Respuesta #4 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.

Desconectado GuayAngel12

  • PHPero Experto
  • *****
  • Mensajes: 894
  • Karma: 17
  • Sexo: Masculino
  • Programador PHP, CSS, HTML...
    • Ver Perfil
    • GreeBool
Re:[AYUDA] Imágenes en campo blob
« Respuesta #5 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.

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[AYUDA] Imágenes en campo blob
« Respuesta #6 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.

Desconectado GuayAngel12

  • PHPero Experto
  • *****
  • Mensajes: 894
  • Karma: 17
  • Sexo: Masculino
  • Programador PHP, CSS, HTML...
    • Ver Perfil
    • GreeBool
Re:[AYUDA] Imágenes en campo blob
« Respuesta #7 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.

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[AYUDA] Imágenes en campo blob
« Respuesta #8 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.

Desconectado GuayAngel12

  • PHPero Experto
  • *****
  • Mensajes: 894
  • Karma: 17
  • Sexo: Masculino
  • Programador PHP, CSS, HTML...
    • Ver Perfil
    • GreeBool
Re:[AYUDA] Imágenes en campo blob
« Respuesta #9 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.

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[AYUDA] Imágenes en campo blob
« Respuesta #10 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.

Desconectado GuayAngel12

  • PHPero Experto
  • *****
  • Mensajes: 894
  • Karma: 17
  • Sexo: Masculino
  • Programador PHP, CSS, HTML...
    • Ver Perfil
    • GreeBool
Re:[AYUDA] Imágenes en campo blob
« Respuesta #11 en: 08 de Agosto de 2011, 01:20:24 am »
*****!! Vale! Pues he cometido un error! Lo reconozco :P Todo el mundo comete errores!!!

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[AYUDA] Imágenes en campo blob
« Respuesta #12 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.

Desconectado GuayAngel12

  • PHPero Experto
  • *****
  • Mensajes: 894
  • Karma: 17
  • Sexo: Masculino
  • Programador PHP, CSS, HTML...
    • Ver Perfil
    • GreeBool
Re:[AYUDA] Imágenes en campo blob
« Respuesta #13 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!

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[AYUDA] Imágenes en campo blob
« Respuesta #14 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.