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
en otro fichero.
Bien el form contiene un campo
para permitir seleccionar una imagen nueva, sino se selecciona se deja la anterior.
Código HTML:
Ver original<form method='POST' action='trabajos_consultar3.php' enctype = 'multipart/form-data'> ..... otros campos
(*)Imagen:
<input type = 'file' name = 'imagen' /> <br/>.... otros campos....
<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<?php
/**** DATOS DE CONEXION **********/
$hotsdb = "localhost"; //valor de nuestra BD
$basededatos = "control3"; //sera el valor de nuestra BD
$usuariodb = "root"; //sera el valor de nuestra BD
$clavedb = ""; //sera el valor de nuestra BD
or
die ("Conexión denegada, el Servidor de BD que solicita NO EXISTE");
or
die ("La Base de Datos <b>$basededatos</b> NO EXISTE");
$cadena = "";
$codtrabajo=$_POST["codtrabajo"];
$estado=$_POST["estado"];
$pagado=$_POST["pagado"];
$observacion=$_POST["observacion"];
$descripcion=$_POST["descripcion"];
$precio=$_POST["precio"];
$fecha_entrada=$_POST["fecha_entrada"];
$fecha_entrega=$_POST["fecha_entrega"];
$ac=$_POST["ac"];
//IF para nombre de la imagen, si se escribe se realiza este UPDATE sino el de ELSE
if (isset($_FILES['imagen']) ) {
//$imagen = $FILES['imagen'];
/************ imagen visualizacion y creacion ***********/
$nombre = "camisa-" . $codtrabajo ;
//imagepng($im); //visualiza en naveg
imagepng($im, "img/".$nombre.".png"); //guarda imagen en img/esenombre.
$query = "
UPDATE trabajos tr
SET tr.codtrabajo= '".$codtrabajo."',
tr.estado= '".$estado."',
tr.pagado= '".$pagado."',
tr.observacion= '".$observacion."',
tr.descripcion= '".$descripcion."',
tr.precio= '".$precio."',
tr.tipo_imagen = '".$nombre."',
tr.fecha_entrada= '".$fecha_entrada."',
tr.fecha_entrega= '".$fecha_entrega."',
tr.ac= '".$ac."'
WHERE tr.codtrabajo = '".$codtrabajo."'
";
include('cierra_conexion.php');
}
else if (!isset($_FILES['imagen']) ) {
//$imagen = $FILES['imagen'];
$query = "
UPDATE trabajos tr
SET tr.codtrabajo= '".$codtrabajo."',
tr.estado= '".$estado."',
tr.pagado= '".$pagado."',
tr.observacion= '".$observacion."',
tr.descripcion= '".$descripcion."',
tr.precio= '".$precio."',
tr.fecha_entrada= '".$fecha_entrada."',
tr.fecha_entrega= '".$fecha_entrega."',
tr.ac= '".$ac."'
WHERE tr.codtrabajo = '".$codtrabajo."'
";
include('cierra_conexion.php');
}
else {
echo "No hay cambios.";
}
?>
Los errores que muestra en pantalla cuando no selecciono ninguna imagen son estos:
Código PHP:
Ver originalWarning
: imagecreatefrompng(): Filename cannot be
empty in C
:\xampp\htdocs\controltrabajos\trabajos_consultar3
.php on line
161
Warning
: imagecolorallocate() expects parameter
1 to be resource
, boolean given in C
:\xampp\htdocs\controltrabajos\trabajos_consultar3
.php on line
162
Warning
: imagesx() expects parameter
1 to be resource
, boolean given in C
:\xampp\htdocs\controltrabajos\trabajos_consultar3
.php on line
163
Warning
: imagestring() expects parameter
1 to be resource
, boolean given in C
:\xampp\htdocs\controltrabajos\trabajos_consultar3
.php on line
164
Warning
: imagepng() expects parameter
1 to be resource
, boolean given in C
:\xampp\htdocs\controltrabajos\trabajos_consultar3
.php on line
166
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 !!