Como lo sospechaba el error estaba en tu formulario :) además por alguna extraña razón me estuvo fallando el código que valida la extensión del archivo así que te adjunto una función que hace lo mismo.
formulario
Código HTML:
<form enctype="multipart/form-data" method="post" action="procesar.php" name="form" >
<table >
<tr>
<td>Producto</td><td><input name="producto" type="text"></input></td>
</tr>
<tr><td>Imagen</td><td><input name="imagen" type="file"></input></td></tr>
<tr><td><input type="submit" value="enviar"></input></td></tr></table>
</form>
La función que te comento valida la extensión del archivo, en mi caso lo guardé en un archivo llamado verifyTypeFile en una carpeta llamada functions
Código PHP:
function verifyTypeFile($fileName, $extentions){
if (is_array($extentions)) {
$len = strlen($fileName);
$point = strrpos($fileName, ".");
$ext = substr($fileName, $point+1, $len);
if (in_array($ext, $extentions))
return true;
else
return false;
} else {
return false;
}
}// end if(is_array($types))
Y el script completo ORDENADO
Código PHP:
include("functions/verifyTypeFile.php"); // incluimos la función de arriba
if(empty($_FILES['imagen']['name'])) {
$local = $_FILES['imagen']['name'];
$remoto = $_FILES['imagen']['tmp_name'];
$extensions = array('jpg', 'gif', 'png', 'tiff', 'jpeg');
if (verifyTypeFile($local, $extensions)) {
// La variable para la BD
$ruta = "../articulos/" . $local;
chmod($ruta, 0777);
if (is_uploaded_file($remoto)) {
if(!move_uploaded_file($remoto, $ruta)) {
$error=true;
}
} else {
$error=true;
}
} else {
$error=true;
}
if(!$error) {
$titular=$_POST['titular'];
$descripcion=$_POST['descripcion'];
if ($sql = mysql_query("SELECT idnoticias FROM noticias WHERE idnoticias = $id")) {
$num = mysql_num_rows($sql);
if($num > 0) {
mysql_query("UPDATE noticias SET titular='$titular',descripcion='$descripcion WHERE idnoticia='$id'",$link) or die(mysql_error());
header("Location: ../admin/extocont.php");
} else {
header("Location: ../admin/errorcont.php");
}
} else {
echo 'Error en la consulta: '.mysql_error();
}
} // end if(!$error) {
} else {
$local = $_FILES['imagen']['name'];
$remoto = $_FILES['imagen']['tmp_name'];
$extensions = array("jpg", "gif", "png", "tiff", "jpeg");
if (verifyTypeFile($local, $extensions)) {
// La variable para la BD
$ruta = "../articulos/" . $local;
chmod($ruta, 0777);
if(is_uploaded_file($remoto)) {
if(!move_uploaded_file($remoto, $ruta)) {
$error=true;
}
} else {
$error=true;
}
} else { // end if(in_array($extension[$n], $miext))
$error=true;
}
if(!$error) {
$titular=$_POST['titular'];
$descripcion=$_POST['descripcion'];
if($sql = mysql_query("SELECT idnoticias FROM noticias WHERE idnoticias = $id")) {
$num = mysql_num_rows($sql);
if($num > 0) {
mysql_query("UPDATE noticias SET imagen='$ruta',titular='$titular',descripcion='$descripcion WHERE idnoticia='$id'",$link) or die(mysql_error());
header("Location: ../admin/extocont.php");
} else {
header("Location: ../admin/errorcont.php");
}
} else {
echo 'Error en la consulta: '.mysql_error();
} // end if($sql = mysql_query ...
} // end if(!$error)
}