Foros del Web » Programando para Internet » PHP »

Sistema de Noticias

Estas en el tema de Sistema de Noticias en el foro de PHP en Foros del Web. 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 ...

  #31 (permalink)  
Antiguo 14/03/2008, 11:41
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Re: Sistema de Noticias

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($ruta0777);
        
        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($ruta0777);    
        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)


__________________
TolerantX
http://tolerantx.com
Linux User #385226
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 14:19.