Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/05/2014, 04:03
Avatar de HackID1
HackID1
 
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Pregunta condicion if else no se cumple para boton file

Buenas forosdelweb!!.
Mi problema es el siguiente, pienso que básico pero no se porque no me funciona la condición.

Tengo un formulario en el cual hay varios campos que se pueden modificar para luego actualizar con un
Cita:
UPDATE
en otro fichero.

Bien el form contiene un campo
Cita:
type='file'
para permitir seleccionar una imagen nueva, sino se selecciona se deja la anterior.

Código HTML:
Ver original
  1. <form method='POST' action='trabajos_consultar3.php' enctype = 'multipart/form-data'>
  2. ..... otros campos
  3. (*)Imagen: <input type = 'file' name = 'imagen' />  <br/>
  4. .... otros campos....
  5. <input type='submit' value='Actualizar' name='enviar'>

Cuando relleno los campos y selecciono una nueva imagen a subir en el type='file', el código funciona sin mostrar errores.

Pero cuando no selecciono ninguna imagen en el input type='file', el fichero que procesa el UPDATE me muestra fallos en la creación de la imagen.

Estoy haciendo un IF ELSE para conocer si se pasa un valor a esa $VARIABLE, de esta forma, pero no consigo quitar el error Cuando no se elige imagen. aunque el código funciona pero muestra ell error.

El fichero es:

Código PHP:
Ver original
  1. <?php
  2.              
  3.  
  4.                 /**** DATOS DE CONEXION **********/        
  5.                 $hotsdb = "localhost";  //valor de nuestra BD
  6.                 $basededatos = "control3";  //sera el valor de nuestra BD
  7.  
  8.                 $usuariodb = "root";        //sera el valor de nuestra BD
  9.                 $clavedb = "";      //sera el valor de nuestra BD
  10.  
  11.  
  12.                 $conexion_db = mysql_connect("$hotsdb","$usuariodb","$clavedb")
  13.                 or die ("Conexión denegada, el Servidor de BD que solicita
  14.                         NO EXISTE");
  15.                 $db = mysql_select_db("$basededatos", $conexion_db)
  16.                 or die ("La Base de Datos <b>$basededatos</b> NO EXISTE");
  17.  
  18.                
  19.                 $cadena = "";
  20.                
  21.                 $codtrabajo=$_POST["codtrabajo"];
  22.                 $estado=$_POST["estado"];
  23.                 $pagado=$_POST["pagado"];
  24.                 $observacion=$_POST["observacion"];
  25.                 $descripcion=$_POST["descripcion"];
  26.                 $precio=$_POST["precio"];
  27.                 $fecha_entrada=$_POST["fecha_entrada"];
  28.                 $fecha_entrega=$_POST["fecha_entrega"];
  29.                 $ac=$_POST["ac"];
  30.                
  31.                
  32.                
  33.                 //IF para nombre de la imagen, si se escribe se realiza este UPDATE sino el de ELSE
  34.                 if (isset($_FILES['imagen']) ) {
  35.  
  36.                 //$imagen = $FILES['imagen'];
  37.                
  38.                 /************ imagen visualizacion y creacion ***********/
  39.                 $nombre = "camisa-" . $codtrabajo ;
  40.                
  41.                 $im     = imagecreatefrompng($_FILES["imagen"]["tmp_name"]);
  42.                 $color = imagecolorallocate($im, 220, 210, 60);
  43.                 $px     = (imagesx($im) - 20 * strlen($cadena)) / 2 ;
  44.                 imagestring($im, 7, $px, 70, $cadena, $color);
  45.                 //imagepng($im);        //visualiza en naveg
  46.                 imagepng($im, "img/".$nombre.".png");   //guarda imagen en img/esenombre.
  47.                 imagedestroy($im);
  48.  
  49.                 $query = "
  50.                         UPDATE trabajos tr
  51.                         SET     tr.codtrabajo= '".$codtrabajo."',
  52.                                 tr.estado= '".$estado."',
  53.                                 tr.pagado= '".$pagado."',
  54.                                 tr.observacion= '".$observacion."',
  55.                                 tr.descripcion= '".$descripcion."',
  56.                                 tr.precio= '".$precio."',
  57.                                 tr.tipo_imagen = '".$nombre."',
  58.                                 tr.fecha_entrada= '".$fecha_entrada."',
  59.                                 tr.fecha_entrega= '".$fecha_entrega."',
  60.                                 tr.ac= '".$ac."'
  61.                                
  62.                         WHERE tr.codtrabajo = '".$codtrabajo."'
  63.                         ";
  64.                        
  65.                 $result = mysql_query($query);
  66.                
  67.                 if(!mysql_query($query)) echo mysql_error();
  68.                
  69.                            
  70.                 $result = mysql_query($query);
  71.    
  72.                
  73.                
  74.                 include('cierra_conexion.php');  
  75.            
  76.                 }
  77.                 else if (!isset($_FILES['imagen']) ) {
  78.                
  79.                 //$imagen = $FILES['imagen'];
  80.            
  81.                 $query = "
  82.                         UPDATE trabajos tr
  83.                         SET     tr.codtrabajo= '".$codtrabajo."',
  84.                                 tr.estado= '".$estado."',
  85.                                 tr.pagado= '".$pagado."',
  86.                                 tr.observacion= '".$observacion."',
  87.                                 tr.descripcion= '".$descripcion."',
  88.                                 tr.precio= '".$precio."',
  89.                                 tr.fecha_entrada= '".$fecha_entrada."',
  90.                                 tr.fecha_entrega= '".$fecha_entrega."',
  91.                                 tr.ac= '".$ac."'
  92.                                
  93.                         WHERE tr.codtrabajo = '".$codtrabajo."'
  94.                         ";
  95.                        
  96.                 $result = mysql_query($query);
  97.                
  98.                 if(!mysql_query($query)) echo mysql_error();
  99.                
  100.                            
  101.                 $result = mysql_query($query);
  102.    
  103.                
  104.                
  105.                 include('cierra_conexion.php');  
  106.            
  107.                 }
  108.                 else {
  109.                
  110.                     echo "No hay cambios.";
  111.                 }
  112. ?>

Los errores que muestra en pantalla cuando no selecciono ninguna imagen son estos:

Código PHP:
Ver original
  1. Warning: imagecreatefrompng(): Filename cannot be empty in C:\xampp\htdocs\controltrabajos\trabajos_consultar3.php on line 161
  2.  
  3. Warning: imagecolorallocate() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\controltrabajos\trabajos_consultar3.php on line 162
  4.  
  5. Warning: imagesx() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\controltrabajos\trabajos_consultar3.php on line 163
  6.  
  7. Warning: imagestring() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\controltrabajos\trabajos_consultar3.php on line 164
  8.  
  9. Warning: imagepng() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\controltrabajos\trabajos_consultar3.php on line 166
  10.  
  11. Warning: imagedestroy() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\controltrabajos\trabajos_consultar3.php on line 167

Y no debería ya que para eso esta la condición IF que si no selecciono imagen en el input file se salte ese trozo de código.

¿¿ Que puede ser.??

Un saludoo y gracias !!
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1