Foros del Web » Programando para Internet » PHP »

Validacion de imagenes segun su tamaño

Estas en el tema de Validacion de imagenes segun su tamaño en el foro de PHP en Foros del Web. Hello everybody... bueno pues aki me encuentro en un dilema, un error ke no entiendo, a mi parecer pienso ke estoy haciendo todo bien pero ...
  #1 (permalink)  
Antiguo 19/09/2003, 22:15
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pirexia
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 1
Exclamación Validacion de imagenes segun su tamaño

Hello everybody... bueno pues aki me encuentro en un dilema, un error ke no entiendo, a mi parecer pienso ke estoy haciendo todo bien pero las pruebas me dicen lo contrario... :S

resulta ke en estos dias he kerido hacer un sistema de comentarios con avatar incluido... pero al cabo d unos dias, me di cuenta de ke eso d poner avatars es algo perjudicial si no puedo controlar el tamaño d los mismos... por lo tanto hice un codigo en donde comprobara ke el width y el height dl avatar fueran menores a un tamaño pre-establecido, pero al parecer no me funciona, este es el codigo:

Código PHP:
<?
if ($go) {
      
//--- arreglamos el avatar ---//
      
$imagen GetImageSize($avatar);
      
$maxsize == 50//tamaño maximo dl avatar
        
if ($imagen[0] <= $maxsize) {
          
$avatarvalido "si"; }
        else { 
$avatarvalido "no"; }
      
//--- si el avatar es valido ---//
        
if ($avatarvalido == "si") { echo "<img src=$avatar> el avatar es valido jeje"; exit; }
        elseif (
$avatarvalido == "no") { echo "<img src=$avatar> el avatar no es valido :'("; exit; }
        else { echo 
"<meta http-equiv=\"REFRESH\" content=\"1; url=prueba.php\"> $imagen[0]"; exit; }
}
?>
<html>
<head>
<title>prueba</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td><div align="center"><form action="<?=$PHP_SELF?>" method="post">
          <p>
            <input name="avatar" type="text" value="http://">
          </p>
          <p>
            <input type="submit" name="go" value="Submit">
          </p>
        </form></div></td>
  </tr>
</table>
</body>
</html>
cual es mi error???, yo creo ke estoy haciendolo bien, pero siempre me sale: "el avatar no es valido"... y si tiene ke ser valido, porke estoy colocando una imagen d 40x40px :S:S:S... espero q alguien sea tan amable de responder ;)
__________________
In a world without walls, who needs Windows?
  #2 (permalink)  
Antiguo 19/09/2003, 22:18
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pirexia
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 1
por favor, no se vale ke me digan ke use la gd ;)
__________________
In a world without walls, who needs Windows?
  #3 (permalink)  
Antiguo 20/09/2003, 15:32
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿El codigo es literalmente el que usas? Porque si es asi, el fallo esta aqui:
Código PHP:
      $maxsize == 50//tamaño maximo dl avatar 
Fijate, estas usando ==, que es el operador de comparacion. No estas asignando ningun valor a $maxsize. Y como no le has asignado ninguno, vale NULL. Y NULL en las comparaciones con numeros equivale a 0. Y por eso tu if compara el tamaño de la imagen con 0. Con lo que siempre es un avatar invalido.

Saludos.

PD: Si este es el error, no te peges cabezazos contra la pared. Todos cometemos fallos de estos, errores al escribir. Un consejo: cuando estes convencido de que el codigo esta bien, pero no te funciona, levantate, y vete a hacer algo completamente distinto, no pienses en el codigo, y vuelve a los 10 minutos. Y veras el codigo mas claramente.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 20/09/2003, 23:16
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pirexia
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 1
amigo, me has ayudado un monton , y muchas gracias por el consejo, lo tendre siempre en cuenta...

jeje ke error tan tonto el mio, en realidad llevo poco tiempo programando en php pero le estoy metiendo ganas... y no tengo casi cultura general jeje, por eso no sabia ke al hacer == estoy comparando :P (lol)

bueno, pero ya resuelto ese error, adivina ke?... salio otro mas :S:S:S:?... voy a colocar el codigo "real" ke estoy usando, para explicar mejor ke es lo ke pasa:

Código PHP:
if ($avatar !== "") {
$imagen GetImageSize($avatar);
$maxsize 50;

if (
$imagen[0] <= $maxsize && $imagen[1] <= $maxsize) {

$queryx "INSERT INTO comentarios (`fecha` , `user` , `avatar` , `titulo` , `comentario` ) VALUES ('$fecha', '$nombre', '$avatar', '$titulo', '$comentario' )";

mysql_query($queryx,$conexion);
header("Location: gracias.php");
exit;
} else { echo 
"avatar invalido"; } 
esto es suponiendo ke ya esta hecha la parte donde el usuario introduce la direccion url dl avatar.
el error esta vez es ke sea como sea, si introduce el avatar a la base d datos, asi el avatar sea d 100x100 pixeles, es decir, toma como si el avatar fuera valido... y no lo es...

espero que me puedas ayudar d nuevo, o cualkier otra persona, y disculpen la molestia
__________________
In a world without walls, who needs Windows?
  #5 (permalink)  
Antiguo 21/09/2003, 15:01
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bien, si estas convencido que la logica esta bien, como es este el caso, es hora de comprobar que los valores estan bien. Haz un:
Código PHP:
echo $imagen[0].'<br>'.$imagen[1]; 
Para saber si obtienes los valores correctos. Puede ser que getimagesize() lo haya devuelto bien los datos.

Y para cuando tienes multiples condiciones en un if, usa los parentesis:
Código PHP:
if (($imagen[0] <= $maxsize) && ($imagen[1] <= $maxsize)) { 
Asi te olvidas de lios de preferencias y asociciones mal hechas.

Sakudos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 21/09/2003, 17:01
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pirexia
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 1
muchisimas gracias hombre... ya funciona a la perfeccion... t debo unas cuantas
__________________
In a world without walls, who needs Windows?
  #7 (permalink)  
Antiguo 09/10/2003, 07:48
Avatar de jonk  
Fecha de Ingreso: julio-2002
Ubicación: Barakaldo
Mensajes: 104
Antigüedad: 15 años, 4 meses
Puntos: 0
es lo que estaba buscando :) para mi foro, con lo k habeis echo he creado una funcion:

Código PHP:
<?
function  validar($foto)
{
$imagen GetImageSize($foto);
$maxsize 88;
$horizontal=88;
$vertical=88;
if ((
$imagen[0] <= $maxsize) && ($imagen[1] <= $maxsize) )
{
?>
<img src="<? echo $foto;?>">
<?
}
else 
{
?>
<a href="<? echo $foto;?>"  target="_blank"><img src="<? echo $foto;?>"  width="<? echo $horizontal;?>" height="<? echo $vertical;?>" alt="Esta imagen esta reducida tamaño original es  <? echo $imagen[0];?>x<? echo $imagen[1];?>" border ="0"></a>
<?
}     
}
?>
$foto -> es la variable que toma de la tabla (en mi caso la de usuarios)

Si el tamaño es el correcto se muestra el avatar del usuario, sino el avatar del usuario se reduce a las medidas 88x88 y enlaza a ver la imagen mas grande.

espero que a alguien le sirva :)

__________________

MyWay. A mi manera
http://myway.i-barakaldo.com
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 05:51.